vimrc语法解析

前言

了解vimrc的语法有助于工作顺利开展,本帖将对vimrc的基本语法做记录。

.vimrc 文件使用的是 Vimscript 语法,这是 Vim 编辑器专门用于编写配置脚本和自定义功能的脚本语言。.vimrc 是一个纯文本文件,按行解析,支持注释、命令、函数等。

注释

以 " 开头的行为注释:

" 这是注释
set number  " 行内注释

设置选项(Options)

使用 set 命令配置 Vim 的行为:

布尔选项

  • 开启:set 选项名
  • 关闭:set no选项名
set number     " 显示行号
set nonumber   " 关闭行号
set wrap       " 自动换行
set nowrap     " 不自动换行

数值/字符串选项

使用 = 赋值:

set tabstop=4      " Tab 显示为 4 空格
set shiftwidth=4   " 缩进宽度
set expandtab      " 将 Tab 转换为空格
set encoding=utf-8 " 文件编码

查看选项值

  • set 选项名?:查看当前值(如 set tabstop?)
  • set all:查看所有选项

键映射(Key Mapping)

定义快捷键映射,语法为 map 模式 快捷键 动作。

模式前缀

  • nmap:普通模式
  • imap:插入模式
  • vmap:可视模式
  • cmap:命令行模式
  • nore:非递归映射(推荐使用,避免循环)
nnoremap <leader>w :w<CR>   " 普通模式保存文件(非递归)
inoremap jk <Esc>           " 插入模式按 jk 退出
vnoremap <C-c> "+y          " 可视模式复制到系统剪贴板

特殊按键

使用 <...> 表示特殊键:

<CR>:回车
<Esc>:Esc 键
<Leader>:默认是 \,可通过 let mapleader = "," 修改
<C-x>:Ctrl + x
<Space>:空格键

自动命令(Autocmd)

在特定事件触发时执行命令,语法为 autocmd [分组] 事件 模式 命令。

常见事件

  • BufNewFile:新建文件
  • BufRead:读取文件
  • FileType:文件类型被检测后
  • BufWritePre:保存文件前

示例

" 所有文件保存前移除末尾空格
autocmd BufWritePre * %s/\s\+$//e

" 针对 Python 文件设置缩进
autocmd FileType python setlocal tabstop=4 shiftwidth=4

" 使用分组管理(避免重复定义)
augroup mygroup
  autocmd!
  autocmd BufEnter *.txt setlocal spell
augroup END

函数与自定义命令

函数定义

函数名必须大写开头或用 # 限定作用域。

使用 function! 覆盖已有函数。

function! ToggleNumber()
  if &number
    set nonumber
  else
    set number
  endif
endfunction

自定义命令

command! -nargs=0 ToggleNumber call ToggleNumber()

变量与表达式

变量赋值

使用 let 定义变量:

let mapleader = ","       " 修改 Leader 键
let g:my_plugin_enabled = 1  " 全局变量

作用域前缀

  • g::全局变量
  • l::局部变量(默认)
  • a::函数参数
  • s::脚本作用域

条件与循环

条件语句

if has("gui_running")
  set guifont=Monospace\ 12
elseif &term == "xterm"
  set t_Co=256
endif

循环

for i in [1, 2, 3]
  echo i
endfor

插件管理(示例:vim-plug)

call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree'        " 文件树插件
Plug 'tpope/vim-fugitive'       " Git 集成
call plug#end()

其他常用配置

syntax enable        " 启用语法高亮
colorscheme desert   " 设置颜色主题
set hlsearch        " 高亮搜索结果
set incsearch       " 实时搜索
set ignorecase      " 忽略大小写
set smartcase       " 智能大小写匹配

调试与重载

  • 重载配置:在 Vim 中执行 :source $MYVIMRC
  • 查看错误:启动时使用 vim -V9logfile 输出日志
posted @ 2025-03-30 13:19  MKYC  阅读(211)  评论(0)    收藏  举报