【Vim入门】新手的几个实用命令及Vim初步个性化定制

【Vim入门】新手的几个实用命令及Vim初步个性化定制


版权声明:本文章为原创,欢迎阅读转载,转载请注明出处,谢谢


第一篇个人技术博客,谢谢大家的支持^o^

先上图

这是我的Vim界面(图中是一个用qsort()写的名字排序小程序,全屏模式F11),有没有很赏心悦目:)起码我自己是这么觉得的:)

废话不多说,进入正题。

  • Vim入门新手的几个实用命令及Vim初步个性化定制
    • 几个实用命令
      • 字符串替换
      • 剪贴板管理
      • 宏录制
      • 书签
      • map命令
    • Vim初步个性化定制
      • 我的vimrc
      • 插件推荐
        • Snipmate代码片段补全
        • SingleComplie
      • 配色方案

几个实用命令

字符串替换

:[g]/search-string/s//replace-string/[g][c]
例如,要将上图中CompareNames改为Compare,只需在命令模式下键入:g/CompareNames/s//Compare/gc
(请勿漏掉冒号)
其中,第一个“g”表示全文检索,“s”表示替换,第二个“g”表示替换匹配的所有字符串,“c”表示在替换每一个字符串之前须经用户确认。(y同意n不同意)
加上c是为了防止误替换,如果非常有信心可以不加上c。(其实多按几次y并不会耗费多少时间)
Ctrl-C组合键可以中途停止这种替换。

(关于字符串检索请自行搜索,在此不再赘述)

补充一个实用的模式检索命令:/\
作用:准确匹配一个完整的字,而非部分字符串。可结合字符串替换使用。

字符串删除(自己可以根据字符串替换得出)
另一种方式:1,$ s/ToDelete//
1,$分别表示文件头和文件尾。

忽略大小写
:set ic
恢复大小写敏感
:set noic

剪贴板管理

Vim有多个剪贴板,键入命令:reg可查看
系统剪贴板编号为"+
Vim默认剪贴板编号为""
这就是为什么每次你想从Vim把代码粘贴到网络上却差点被活活气死的原因…

常用命令
"+Y -> 复制到系统剪贴板
"+p -> 从系统剪贴板粘贴
(请勿漏掉双引号)

详情请直接参阅vi的复制粘贴命令 - lansh的博客中的相关内容

宏录制

这个是我偶然发现的一个功能…非常强大,可以完成很多重复性操作。

宏录制: qa 操作序列 q, @a, @@
qa 把你的操作记录在寄存器 a。
于是 @a 会replay被录制的宏。
@@ 是一个快捷键用来replay最新录制的宏。

详情请参阅vim宏录制 - lmx077的博客

书签

功能:跳转至上一次(或被标记过的)光标所在位置,对阅读或修改文档很有帮助。

常用命令
m{a-z} -> 保存书签 ({a-z}表示键入任意一个小写字母)
`{a-z} -> 跳转到某个书签(字符`输入键位于Esc下方)

`. -> 跳转至上一次光标位置

详情可参阅vim标签功能 - 天涯角落的专栏

map命令

最强大最灵活的Vim命令之一,用以定制自己的个性化快捷键!
:map -> 查看当前所有映射

我设置的几个实用的映射
:nmap ggVG"+Y -> 命令模式下,用Ctrl+A将全文复制到系统剪贴板
’:nmap <F8> :sh<C-R>‘ -> 命令模式下,按F8进入shell编辑Linux命令

假如刚接触Vim对方向键hjkl不顺手,可以map成jkil,这样应该会顺手得多^o^(不过i键就要重新map成别的键了…)
我是没有改的,觉得用久了自然就习惯了:)

map命令非常强大,有兴趣可以慢慢玩:)

以上就是我目前想到的想写出来分享的几个Vim实用命令,欢迎交流补充^o^

接下来是我的Vim初步个性化定制

Vim初步个性化定制

我的.vimrc

set nu
set ts=4
set expandtab
set shiftwidth=4
set softtabstop=4
set autoindent
map <C-A> ggVG"+Y
filetype plugin on
set lines=999 columns=999
nmap  :sh
nmap  :SCCompile 
nmap  :SCCompileRun 

比较清爽简单,主要是缩进的设置,几个map,和开启Snipmate、SingleComplie。

插件推荐

Snipmate(代码片段补全)

之前用gedit的时候就注意到了里面的Snippets插件,不是一般的好用!
例如,可以通过设置使得键入new + Tab,即可编辑出

#include 

int main() {

    return 0;
}

并让光标停在空行处。
此外还有一些如参数设置等好玩的东西,可以自己发掘(它的语法一看就能懂)。

Snippets太好用了,因此Vim入门后第一个找的插件就是它,而Snipmate就是Vim下的一个Snippets。

下载地址:Snipmate下载
(请输入Snipmate并Search)
请关注install details部分的内容,别忘了“filetype plugin on”:)

有个地方提醒一下,snippets文件中行首那个空白是Tab,请注意你的编辑器是否会自动替换为空格…(这个Tab把我坑了好久T_T)
【Vim入门】新手的几个实用命令及Vim初步个性化定制_第1张图片

鼓捣完之后你就可以享受你自己的Snipmate了^o^

SingleComplie

假如你还怀念IDE的一键编译运行,那么SingleComplie就是你的福音…从此可以不用再g++ helloworld.cc了…

下载地址:SingleComplie下载
(没错你还是要输入SingleComplie并Search…)

记得在.vimrc中加入:

nmap <F9> :SCCompile
nmap <F10> :SCCompileRun 

从此开启愉快的“将Vim改造成IDE”之旅…

配色方案

有很多流行的配色方案,有兴趣可以自行搜索。
我觉得默认的配色方案还是比较顺眼的,换了几种后又换了回来…
说一说怎么改字体大小之类的…
gvim可以通过输入一些命令改字体,而vim默认是字体与终端字体保持一致的,至于怎样解除这个一致性可以自行搜索(我没有折腾过…)

改终端字体很简单,终端界面右键Profiles->Profile Preferences
我用的是Ubuntu Mono 15,很喜欢
Colors -> Gray on black
Background设为半透明,用了一张自己很喜欢的图片,
需要的可自行取走:)
【Vim入门】新手的几个实用命令及Vim初步个性化定制_第2张图片

之后打开Vim按F11觉得真是赏心悦目…

以上大概就是主要内容,接触Vim短短几天,经验不足,有些地方如有疏漏不足请批评指正,欢迎交流分享^o^

return 0;

你可能感兴趣的:(Vim入门)