Skip to content

Instantly share code, notes, and snippets.

@lazydao
Last active July 9, 2025 09:00
Show Gist options
  • Save lazydao/ab00c8bef9f60c8c6063a92c7411edc4 to your computer and use it in GitHub Desktop.
Save lazydao/ab00c8bef9f60c8c6063a92c7411edc4 to your computer and use it in GitHub Desktop.
vim配置
" 自动安装 vim-plug
let data_dir = expand('~/.vim')
if empty(glob(data_dir . '/autoload/plug.vim'))
silent execute '!curl -fLo ' . data_dir . '/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
" 插件管理
call plug#begin('~/.vim/plugged')
Plug 'joshdick/onedark.vim' " 主题
Plug 'spin6lock/vim_sproto' " sproto 支持
Plug 'Yggdroot/LeaderF', { 'do': ':LeaderfInstallCExtension' } " 文件搜索
call plug#end()
" 基础设置
set termguicolors " 开启 24 位颜色
set background=dark " 设置背景为暗色
syntax enable " 开启语法高亮
colorscheme onedark " 设置主题为 onedark
set shortmess+=I " 禁用启动信息
set number " 显示行号
set nowrap " 不自动换行
set laststatus=2 " 始终显示状态栏
set hidden " 允许隐藏未保存的缓冲区
set ignorecase " 忽略大小写
set smartcase " 智能大小写匹配
set incsearch " 实时搜索
set noerrorbells " 禁用响铃
set mouse+=a " 开启鼠标支持
set lazyredraw " 延迟重绘
set hlsearch " 高亮搜索结果
set expandtab " 将 Tab 转为空格
set tabstop=4 " 设置 Tab 的宽度为 4
set shiftwidth=4 " 设置缩进宽度为 4
set softtabstop=4 " 设置插入模式的 Tab 宽度为 4
set autoindent " 自动缩进
set wildmenu " 开启命令行补全
" 快捷键
nmap Q <Nop> " 禁用 Q 键进入 Ex 模式
" 使用 Ctrl+hjkl 在窗口间导航
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
nnoremap <leader>w :w<CR>
nnoremap <leader>q :q<CR>
" LeaderF 配置
let g:Lf_WindowPosition = "popup"
let g:Lf_WorkingDirectoryMode = "Ac"
let g:Lf_ShortcutF = '<C-P>'

安装

安装 plug 插件:

curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

快捷键

主要列举常用和插件相关的快捷键,自带的可以参考 Vim 官方文档。

可以用 :map 查看已绑定快捷键。

默认情况下,<leader> 键的映射是反斜杠 \

移动与跳转

快捷键/命令 动作/说明
h/j/k/l 左/下/上/右移动
gg/G 跳转到首行/末行
0/^/$ 跳转到行首/首非空/行尾
w/b/e 跳转到下一个单词首/上一个单词首/下一个单词结尾
% 跳转到匹配括号
fx/tx/Fx/Tx 跳转到下一个x/下一个x前一位/上一个x/上一个x后一位
Ctrl-i 跳到更“新”位置(跳转历史向前)
Ctrl-o 跳到更“旧”位置(跳转历史向后)
Ctrl-] 跳转到光标下符号的定义
Ctrl-t 返回上一个位置
:tag <symbol> 直接跳转到指定符号
:ts <symbol> 查找所有匹配的符号
zz/zt/zb 当前行居中/顶部/底部

编辑与操作

快捷键/命令 动作/说明
i/a/o 进入插入/追加/新开一行插入模式
u 撤销(Undo)
Ctrl-r 重做(Redo)
di"/dt" 删除双引号内/到下一个双引号
%s/old/new/g 全局替换 old 为 new
:saveas <path> 另存为指定路径
<leader> 用户自定义前缀键
<C-W>d 显示光标下诊断信息
<Ctrl+\> 终端与普通模式切换

窗口与分屏

快捷键 动作/说明
Ctrl+w h/j/k/l 窗口左/下/上/右移
Ctrl+w >/< 增加/减少窗口宽度
Ctrl+w +/- 增加/减少窗口高度
Ctrl+w + 增加窗口高度
Ctrl+w - 减少窗口高度

插入模式快捷键

快捷键 动作
Ctrl-h 删除光标前一个字符
Ctrl-w 删除光标前的一个单词
Ctrl-u 删除从行首到光标的所有字符
Ctrl-a 跳到行首并保留插入模式
Ctrl-e 跳到行尾并保留插入模式

普通模式快捷键

快捷键 动作
Ctrl-d 向下滚动半页
Ctrl-u 向上滚动半页
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment