Debian Vim自定义配置教程

2024-11-09 2

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” 用来定位大量系统提供的运行时支持文件