0x11 Vim个性化定制:
- vim的个性化定制文件一般是~/.vimrc。如果不存在就创建一个。在vim中可以通过":help"来查看。
0x12 可以在~/.vimrc文件中进行个性化定制:
-
编辑常用的set,可以将下列内容写到~/.vimrc中,对vim进行个性化定制:
" basic set number # 设定行号 set ruler # 设定尺标以显示行列(经纬)信息 set clipboard=unnamed # 设定操作系统剪切板和vim寄存器互通(默认不通) set cursorline # 设定光标所在行有行下划线 set noswapfile # 设定不会产生.swp文件 set wrap # 设定开启文本过长折叠(默认开启)。使用"set nowrap"来关闭。 set linebreak # 设定文本过长折叠时以一个word为基本unit,而不是字母。避免一个单词被分割在两行的情况。 set showmode # 设定显示当前所处模式(默认开启)。使用"set noshowmode"来关闭,但是不建议关闭。 set showcmd # 设定显示当前命令(默认开启)。使用"set noshowcmd"来关闭,但是不建议关闭。 set list # 设定显示换行等默认隐藏的信息。使用"set nolist"来关闭。建议保持关闭。 " search set hlsearch # 设定查找内容高亮 set ignorecase # 设定查找时忽略大小写敏感 set smartcase # 设定当目标词中存在大写时,暂时忽略ignorecase set incsearch # 设定渐进式查找(随着对目标单词输入时长度的增加,文档中会越来越精确的找到目标单词) " tab and space set softtabstop=2 # 设定在insert模式下tab键每次移动距离 set shiftwidth=2 # 设定在normal模式下">"或"<"键进行缩排调节的距离 set expandtab # 设定将一个tab的距离软化成多个space " tab page set showtabline=2 # 设定标签页的显示情况(0为永不显示,1为至少存在两个才显示,2为一直显示) set splitbelow # 设定通过":new"水平开新视窗时在原视窗下面(默认为上面) set splitright # 设定通过":vnew"垂直开新视窗时在原视窗右侧(默认为左侧) " color syntax on # 设定vim打开高亮 colorscheme darkblue # 设定vim的主题颜色为darkblue(默认是default) " filetype filetype on # 设定filetype功能打开 filetype indent on # 设定filetype自动缩排 filetype plugin on # 设定filetype基于文件后缀开启对应外挂插件
注:默认情况下~/.vimrc中的配置不会在vim中生效,需要在vim中使用此命令":source ~/.vimrc"来加载vimrc中的配置。
-
关于.swp文件:
该文件是进行编辑时而产生的临时交换文件,并且以隐藏文件的形式存在。当正常保存编辑结果后,.swp文件会自动消失。但是如果遇到类似保存错误或其他类似断电等突发情况,那么.swp文件及其中的内容依然存在。如果将该文件泄露出去会不够安全。
另外,当与某文件名对应的.swp文件存在时,若要对目标某文件进行编辑时,会出现如下提示:
此时可以基于实际情况,在最下面一行中进行适当的选择。然后将.swp文件删除掉。
-
如果要体验最早的vi编辑器,可以在vim中使用如下命令来实现(vi比起vim来,太不好用了)。
:set compatible
注:在vim中,默认配置是
:set nocompatible
-
可以在vim中输入":set"来查看当前所有自主设定
- 可以在vim中输入":set all"来查看所有的设定内容:
- 若要罗列出vim所支持的所有主题,则可以使用如下命令实现:
:colorscheme "Ctrl+d"
0x13 Vim中的key-mapping,移形换位大法:
-
Key-mapping功能就是将某些组合键的功能映射到另外的组合键,以满足用户的使用习惯。
例如:不习惯使用"y"进行复制,而习惯使用"Ctrl+c"进行复制。
-
会用到map/nmap/vmap/imap等命令分别于normal、visual和insert模式下进行设置。具体对应关系如下表:
执行映射命令 取消映射命令 Normal Mode Visual Mode Insert Mode :map :unmap 支持 支持 :nmap :nunmap 支持 :vmap :vunmap 支持 :imap :iunmap 支持 -
在vim中,可以使用查看帮助":help key-notation"。这里面会罗列出相关按键的代码,只要基于这些代码进行映射,就可以移形换位。
-
做个映射修改:将"y"映射成"Ctrl+c"。
Step1:先确定"Ctrl"按键的代码,如图所示:
Step2:在visual模式下,将"y"映射到"Ctrl+c"。
Step3:使用":map"来查看刚刚定义的映射是否成功
step4:完成以上步骤,就可以在visual模式下通过"Ctrl+c"来完成复制动作了。若想清除掉刚刚自定义的映射,可以使用如下命令实现:
:vunmap <C-c>
未完待续…