Skip to content

Instantly share code, notes, and snippets.

@lazydao
Last active February 13, 2025 03:12
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

  • u: Undo
  • Ctrl+R: Redo
  • %s/old/new/g: Replace old with new globally
  • Ctrl+O 会将光标移动到上次您离开的位置
  • zz 当前行移动到屏幕中央,zt,zb
  • di" 删除双引号内的内容,i 代表 inside
  • dt" 删除到双引号为止,t 代表 till
  • <leader> 键是一个特殊的按键,用于定义用户自定义快捷键的前缀。
    • 默认情况下,<leader> 键的映射是反斜杠 \。这意味着在定义快捷键时,可以使用 <leader> 键作为前缀,以便访问特定的功能或命令。
  • 在窗口之间移动:Ctrl+w 按键后接 h(左移),j(下移),k(上移),或 l(右移)
  • 调整窗口宽度:
    • 增加宽度:Ctrl+w 然后按 >
    • 减少宽度:Ctrl+w 然后按 <
  • 调整窗口高度(如果是水平分割):
    • 增加高度:Ctrl+w 然后按 +
    • 减少高度:Ctrl+w 然后按 -
  • % 命令可以将光标移动到与当前光标位置匹配的下一个符号处。比如从左括号跳转到对应的右括号。
  • <C-W>d Show diagnostics under the cursor
  • :saveas <path/to/file> → 另存为 <path/to/file>
  • fx - 移动到字符 x 下次出现的位置
  • tx - 移动到字符 x 下次出现的位置的前一个字符
  • FT 反向移动
  • <Ctrl + \> 在终端模式和普通模式之间切换(使用 :terminal 打开终端后想退出时用)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment