Vim 是一款功能强大的文本编辑器,在 Debian 系统中非常受欢迎。它具有许多内置的特性和灵活的配置选项,可以根据个人喜好和需求进行定制。本篇教程将介绍如何使用内部特性和外部软件包定制Vim。
了解如何使用Vim:《Debian类Unix工作环境》。
一、用内部特性定制Vim
vim 的行为能够被显著的改变,通过 Ex-模式 的命令,启用它的内部特性,比如 “set …” 来设置 vim 选项。
这些 Ex-模式 的命令,能够在用户的 vimrc 文件里面包括,传统的 “~/.vimrc” 或 git 友好的 “~/.vim/vimrc”。这里有一个非常简单的例子:
colorscheme murphy " from /usr/share/vim/vim??/colors/*.vim filetype plugin indent on " filetype aware behavior syntax enable " Syntax highlight "set spelllang=en_us " Spell check language as en_us "set spell " Enable spell check set autoindent " Copy indent from current line set smartindent " More than autoindent (Drop/Pop after {/}) set nosmarttab " <Tab>-key always inserts blanks set backspace=indent,eol,start " Back space through everything set laststatus=2 " Always show status line set statusline=%<%f%m%r%h%w%=%y[U+%04B]%2l/%2L=%P,%2c%V
二、用外部软件包定制Vim
通过简单定制,即安装 vim-scripts 软件包,并附加下面的内容到用户的 vimrc 文件,能够启用 secure-modelines 和传统的 IDE。
packadd! secure-modelines packadd! winmanager let mapleader = ' ' " Toggle paste mode with <SPACE>p set pastetoggle=<leader>p " IDE-like UI for files and buffers with <space>w nnoremap <leader>w :WMToggle<CR> " Use safer keys <C-?> for moving to another window nnoremap <C-H> <C-W>h nnoremap <C-J> <C-W>j nnoremap <C-K> <C-W>k nnoremap <C-L> <C-W>l
为了使上面的按键绑定正确地运行,终端程序需要配置:Backspace-键产生 “ASCII DEL”、Delete-键产生 “Escape sequence”。
新的原生 Vim 软件包系统同 “git” 和 “git submodule” 顺利的工作。一个这样的配置例子能够在 我的 git 仓库: dot-vim 找到。本质上是这样做的:
- 通过使用”git”和”git submodule”,最新的扩展软件包,比如说”name”,会被放到 ~/.vim/pack/*/opt/name 和类似的地方;
- 通过增加 :packadd! name 行到用户的 vimrc 文件,这些软件包被放到 runtimepath;
- Vim 在它的初始化时加载这些软件包到 runtimepath;
- 在它初始化的最后,安装文档的标签被更新,使用 “helptags ALL”。
如果想了解更多信息,请使用 “vim –startuptime vimstart.log” 启动 vim 来检查实际的执行顺序和每一个步骤消耗的时间。
下面能够发现有趣的外部插件软件包:
- Vim – 无所不在的文本编辑器 — Vim 和 vim 脚本的官方上游站点
- VimAwsome — Vim 插件列表
- vim-scripts — Debian 软件包:一个 vim 脚本的收集
是相当迷惑的看到这么多的方式[4] 来管理和加载这些外部的软件包到 vim。检查原始的信息是最好的方法。
Vim的初始化信息:
按键 | 信息 |
---|---|
:help package |
解释 vim 软件包机制 |
:help runtimepath |
解释 runtimepath 机制 |
:version |
内部状态,包括 vimrc 文件的候选 |
:echo $VIM |
环境变量 “$VIM ” 用来定位 vimrc 文件的路径 |
:set runtimepath? |
列出用来搜索所有运行时支持文件的目录 |
:echo $VIMRUNTIME |
环境变量 “$VIMRUNTIME ” 用来定位大量系统提供的运行时支持文件 |