所用命令的帮助入口:
:help compatible
:help mapleader
:help map
:help autocmd
为什么我的vim这么难用?不能语法高亮,没有折行,不能打开多个窗口多个buffer,不能……
为什么别人用几个键就可以完成一个很复杂的功能,而我不能?
为什么别人的vim看起来和我的很不一样?
……
当你开始问这些问题的时候,是时候去检查一下你的vimrc了。
当vim在启动时,如果没有找到vimrc或gvimrc,它缺省工作VI兼容的模式。这意味着,你只能使用VI所具备的功能,而vim中的大量扩展功能将无法使用。也许这就是你的vim如此难用的原因。
vim中自带了一个vimrc例子,让我们从这个例子开始吧。
下面我以Linux下的vim为例,windows版本的vim,会在后面提到。
示例的vimrc(名为vimrc_example.vim)通常位于/usr/share/vim/vimXXX/目录下,其中vimXXX与你所使用的vim版本有关。
首先把这个示例的vimrc拷贝到相应的目录,在Linux下,应该把它拷贝到你的home目录下,名字为”.vimrc”,下面是shell命令:
cp /usr/share/vim/vim70/vimrc_example.vim ~/.vimrc
或者你在vim中执行下面的命令,和上面的shell命令完成相同的功能:
:!cp $vimRUNTIME/vimrc_example.vim ~/.vimrc
现在,你退出vim后再进入,你的vim和刚才已经不一样了。
你可以先读一下你的vimrc,看看它都设定了什么:
:e ~/.vimrc
这是一个注释良好的文件,不需要多解释。
对windows版本的vim,它已经缺省的有了一个vimrc,你可以在vim在使用下面的命令来查看它:
:e $vim/_vimrc
在这个文件中,它包含了上面提到的vimrc_example.vim。同时,它会把vim设置的更符合windows的操作习惯。比如,支持CTRL-C拷贝,CTRL-V粘贴等等。Windows下的用户,可以使用$vim/_vimrc来做为你的第一个vimrc。
顺便提一句,在unix/linux中,文件名可以以”.”开头,表明此文件是隐藏的。而在windows中,不允许文件名以”.”开头,所以,windows版本的vim,将读取_vimrc来做为自己的配置文件。
在今后使用vim的日子里,你会频繁的更改你的vimrc。所以我们需要设置一些快捷方式,使我们能快速的访问vimrc。
把下面这段内容拷贝到你的vimrc中:
1 "Set mapleader
2 let mapleader = ","
3
4 "Fast reloading of the .vimrc
5 map <silent> <leader>ss :source ~/.vimrc<cr>
6 "Fast editing of .vimrc
7 map <silent> <leader>ee :e ~/.vimrc<cr>
8 "When .vimrc is edited, reload it
9 autocmd! bufwritepost .vimrc source ~/.vimrc
为了方便解释,我给每一行都加了一个行号。
在vimrc中,双引号开头的行,将被当作注释忽略。
第2行,用来设置mapleader变量,当mapleader为未设置或为空时,使用缺省的”\”来作为mapleader。
mapleader变量是作用是什么呢?看下面的介绍。
第5行定义了一个映射(map),这个映射把<leader>ss,映射为命令:source ~/.vimrc<cr>。当定义一个映射时,可以使用<leader>前缀。而在映射生效时,vim会把<leader>替换成mapleader变量的值。也就是说,我们这里定义的<leader>ss在使用时就变成了”,ss“,当输入这一快捷方式时,就会source一次~/.vimrc文件(也就是重新执行一遍.vimrc文件)。
第7行,定义了<leader>ee快捷键,当输入,ee时,会打开~/.vimrc进行编辑。
第9行,定义了一个自动命令,每次写入.vimrc后,都会执行这个自动命令,source一次~/.vimrc文件。
有了上面的快捷键,我们就能快速的打开vimrc文件编辑,快速重新source vimrc文件,方便多了。
无论在windows还是在linux中,我都使用vim作为我的缺省编辑器。并且,我想使用同一个vimrc文件。因此,我定义了一个MySys()函数,用来区分不同的平台,以进行不同的配置。
另外,在编辑vimrc文件时,我更喜欢新开一个标签页来编辑,而不是在当前窗口中。因此,我定义了SwitchToBuf()函数,它在所有标签页的窗口中查找指定的文件名,如果找到这样一个窗口,就跳到此窗口中;否则,它新建一个标签页来打开vimrc文件。(注:标签页(tab)功能只有在vim 7.0版本以上才支持。)
下面是我的vimrc中使用的设定,希望能够抛砖引玉:
" Platform
function! MySys()
if has("win32")
return "windows"
else
return "linux"
endif
endfunction
function! SwitchToBuf(filename)
"let fullfn = substitute(a:filename, "^\\~/", $HOME . "/", "")
" find in current tab
let bufwinnr = bufwinnr(a:filename)
if bufwinnr != -1
exec bufwinnr . "wincmd w"
return
else
" find in each tab
tabfirst
let tab = 1
while tab <= tabpagenr("$")
let bufwinnr = bufwinnr(a:filename)
if bufwinnr != -1
exec "normal " . tab . "gt"
exec bufwinnr . "wincmd w"
return
endif
tabnext
let tab = tab + 1
endwhile
" not exist, new tab
exec "tabnew " . a:filename
endif
endfunction
"Fast edit vimrc
if MySys() == 'linux'
"Fast reloading of the .vimrc
map <silent> <leader>ss :source ~/.vimrc<cr>
"Fast editing of .vimrc
map <silent> <leader>ee :call SwitchToBuf("~/.vimrc")<cr>
"When .vimrc is edited, reload it
autocmd! bufwritepost .vimrc source ~/.vimrc
elseif MySys() == 'windows'
" Set helplang
set helplang=cn
"Fast reloading of the _vimrc
map <silent> <leader>ss :source ~/_vimrc<cr>
"Fast editing of _vimrc
map <silent> <leader>ee :call SwitchToBuf("~/_vimrc")<cr>
"When _vimrc is edited, reload it
autocmd! bufwritepost _vimrc source ~/_vimrc
endif
" For windows version
if MySys() == 'windows'
source $VIMRUNTIME/mswin.vim
behave mswin
endif
注意:我在windows中也定义一个”HOME”环境变量,然后把_vimrc放在”HOME”环境变量所指向的目录中。如果你打算在windows中使用上面的设定,也需要这样做!
好了,现在我们知道如何永久更改‘sessionoptions’选项和‘viminfo’选项了,把对它们的配置放入你的vimrc即可。
vim自带的示例vimrc中,只定义最基本的配置。
在http://www.amix.dk/vim/vimrc.html有一个非常强大的vimrc,有人戏称为”史上最强的vimrc”,或许有些言过其实。不过,如果你通读了这个vimrc,相信能从中学到很多……
这里有一个redguardtoo修改过的版本,可以对照参考一下。
我的vimrc也是基于Amix的模板,然后自已做了很多修改。
建议:不要照拷这个vimrc!可能这个文件的设定并不符合你的习惯。另外,这个文件的设定,可能也不能在你的工作环境中运行。
分享到:
相关推荐
**vi和vim编辑器详解** ...vi和vim编辑器因其高效和灵活性在IT行业中有着广泛的使用。熟练掌握vim不仅能提高代码编写效率,还能提升在各种环境下的适应性。不断实践和探索,你会发现vim成为你不可或缺的工具。
本教程将涵盖vim的基础使用、进阶技巧以及常见问题解决方案。 ### 一、vim基础 1. **启动与退出** - 启动vim:`vim 文件名` - 退出vim:`:q`(保存退出)、`:q!`(不保存强制退出)、`:wq`(保存并退出) 2. **...
《vim使用进阶》这本书是为那些希望提升文本编辑技能的用户量身打造的,它不仅适合初学者,也对已经熟悉vim基础操作的进阶用户极具价值。Vim(Vi Improved)是一款强大的命令行文本编辑器,因其高效的操作方式和高度...
vim进阶技巧 - **块选择与操作**: 在可视模式下,用`v`选中块,然后可以进行复制、删除等操作。 - **宏录制与播放**: `qq`开始录制,执行一系列操作后,`q`停止录制。`@q`播放宏。 - **多窗口编辑**: 使用`:sp`...
- **查找替换**:使用`/`键后面跟要查找的字符串可以搜索文本,用`n`和`N`键分别向前和向后搜索下一个匹配项;使用`:`键后输入`s/pattern/replacement/g`可以全局替换文本中的指定模式。 #### 高级功能 - **多级...
随着时间的推移,VI进化成了VIM(Vi IMproved),由 Bram Moolenaar 在1991年推出,增加了大量新功能和改进,使其成为当今广泛使用的强大文本编辑器。 **VIM的基本操作** 1. **启动与退出**: 在终端中输入`vim`或`...
三、VIM进阶技巧 1. 录制宏: - `qq`:开始录制宏到寄存器q - 操作序列 - `q`:停止录制 - `@q`:播放寄存器q中的宏 2. 快速定位: - `%`:在匹配的括号间移动 - `^`:移动到非空白字符的行首 3. 插入模式...
《学习vi和vim编辑器第七版》是一本详细介绍如何使用vi和vim编辑器的书籍,适合初学者和进阶用户。vi(Visual Editor)是一款在Unix和类Unix系统中广泛使用的命令行文本编辑器,而vim(Vi IMproved)则是vi的增强...
【标题】"Vi-vim-gvim快速学习"涵盖了在Linux和Unix系统中广泛使用的文本编辑器Vi(Visual Editor)的进阶版本Vim(Vi IMproved)及其图形化界面gvim的基本操作和高级技巧。Vi是一款强大的命令行文本编辑器,而Vim则...
**vi和vim编辑器详解** `vi`(Visual Editor)是一款经典的文本编辑器,自1976年起在Unix系统中广泛使用。随着时间的发展,它发展成为`vim`(Vi IMproved),一个更加先进和功能丰富的版本,至今仍被广大程序员和...
本文将围绕“VIM入门与进阶”这一主题展开,通过对给定文件中的内容进行深入解析,帮助读者理解Vim的基本概念、历史背景及其主要功能特性。 #### Vim的历史与发展 - **vi的诞生**:1976年,Bill Joy为Unix系统开发...
- **.vimrc**:vim的配置文件。 **知识点7:Package Management** - **yum**:包管理器。 - **yum list**:列出可用的软件包。 - **yum group list**:列出软件包组。 - **yum search**:搜索软件包。 - **yum...
Vim可以通过.vimrc文件进行个性化配置,如安装插件,设置快捷键等。例如: ```vim " 加载插件管理器 execute pathogen#infect() " 设置自动缩进 set autoindent " 开启语法高亮 syntax on " 使用2个空格进行缩进...
要使用这个`vimconfig-master`,首先你需要将其解压到你的家目录(通常是`~/.vim`),然后将`vimconfig`目录下的`.vimrc`文件链接到你的家目录,这样Vim会在启动时加载这个配置: ```bash cd ~ mkdir -p .vim cp -r...
“VI的使用.pdf”这个文档很可能是详细介绍了VIM的基础操作和高级技巧,包括如何启动VIM、基本的移动光标命令(如h,j,k,l)、插入文本(i,a,o等)、删除文本(x,d等)、复制与粘贴(yy,p等)、撤销与重做(u,U,.`等...
- **VIM**(Vi IMproved)是一种基于Vi的文本编辑器,广泛应用于Unix/Linux系统中。 - **特点:**功能强大、高度可定制、支持多种编程语言的语法高亮等。 - **基本模式:** - **普通模式**(Normal mode):默认...
《vimbook-OPL-Vi iMproved (VIM).pdf》是一本专注于VIM编辑器的详细指南。VIM,全称Vi Improved,是经典的文本编辑器Vi的增强版本,以其高效、强大的编辑功能和高度可定制性在程序员和系统管理员中广受欢迎。这本书...
- **插件安装**:使用如Vundle、Pathogen等插件管理工具,安装如SyntaxHighlighting、Fugitive.vim等插件,以增强VIM的功能。 - **自定义配置**:编辑`.vimrc`文件,设置个性化选项,提高工作效率。 ### 结语 VIM的...