vim实用笔记

真是不知不觉过了一年,前段时间忙着考试什么的,没再写笔记写博客,考完又懒懒地玩了几天。这几天其实都在读别人的博客,感觉一下大神的工做和生活感悟,感觉一下过来人的经历和经验,对本身老是颇有帮助的。php

今天想写下一下vim的笔记。java

Vim,程序员必备的高效编辑器,不用多介绍的了,代码补全、编译和跳转等方便的编辑都是很是丰富完整的。python

其实如今很多公司指定员工后台开发要用这个编辑器,ubuntu+vim的开发形式其实挺常见的。Vim确实是很是强大的编辑器,不少IDE能够作的vim均可以作到,想自行增长一些编辑加强或者编译功能的话装对应插件便可。c++

本篇笔记涉及到的软件有vim7.3版本,python3.0 , clang3.0。git

目录:程序员

1、常识github

2、vim基础笔记ubuntu

   2.一、基本文本输入vim

   2.二、vim实用基础配置编辑器

3、vim实用功能

   3.一、查找功能

   3.二、分割窗口编辑多个文件

   3.三、代码折叠

   3.四、代码间跳转

   3.五、vim代码自动补全插件clang_complete的安装

1、常识:

一、按Tab能够补全命令;

二、下面提到的凡是“:set XXXX”之类的设置命令都可直接在vim配置文件vimrc中加入,这样的话不用每次都从新配置;

三、vim的配置文件路径通常是:/etc/vim/vimrc,若是你想针对某个特定用户配置一个特定的配置文件,那么在该用户文件夹下建立~/.vimrc文件,并输入配置内容便可;

四、帮助文档的使用,好比说我想知道怎么开启语法高亮(通常默认是已经开启的),那么在vim中键入命令:”:help syntax”,便可查看相关帮助信息:

若是要进一步查看相关文档,好比文档usr_06.txt,那么继续键入”:help usr_06.txt”便可跳转,查看完毕以后,按ZZ或者键入”:q!”(不保存的退出方式)便可退出帮助文档。

2、vim基础笔记:

2.1 基本文本输入:

一、键入文本:按i(其实a,s等没有其余功能的普通按键亦可)

二、退出输入状态:<Esc>键。

三、复制:在非输入状态下(按Esc退出输入状态),按yy(复制整行),yw(复制当前单词),y$(复制到行尾),鼠标选中按y(复制选中部分)。

四、粘贴:<Esc> 。按p。

五、移动:按逐个词向后:<Esc>,w;逐个词往回:<Esc>,b。移动到指定行,好比移动到33行:<Esc> , 33G。(注意是大写)。

六、删除:<Esc> 。单个字符,按x;一行,dd;删除一个换行符,J(大写)。

七、撤销:<Esc> , u。

八、保存和退出:应用更改,命令”:write”;。不保存即退出,命令”:q!”。保存并退出,ZZ。

关闭当前编辑窗口,命令”:close”。对所有文件应用更改,”:wall”。所有文件退出,命令”:qall”,使用该命令前需先进行所有文件写入”:wall”。

九、命令补全:Tab键可补全命令。Ctrl+D可查看能够补全的命令表,好比:

十、挂起编辑和继续:和大部分Unix程序同样,ctrl+Z可将vim挂起,回到terminal或console中,无论你作了什么工做,在terminal或者console中输入fg便可回到编辑状态。

2.2 vim实用基础配置:

配置出了能够经过命令实现外,也能够将set内容添加到vim配置文件/etc/vim/vimrc中,固然,添加到vimrc就不须要在set前面加”:”了。

一、设置显示行号可使用命令 ”:set number”

二、文件自动保存,”:set autowrite”

三、使鼠标可用,”:set mouse=a”。这个命令键入后在可视化界面是生效的,可是我在tty1控制台键入该命令却没有任何变化,经过”:help mouse”查找相关帮助内容后看到:

看到其中一个使用条件是:”Linux console with gpm”,那我想应该是缺乏了这个东西,因此尝试安装一下:

sudo apt-get install gpm

安装完成后发现没问题了,”:set mouse=a”设置成功。

四、实用配置列表:

由于这些配置实在太多,就不一一列举了,总结和摘录了一个经常使用的配置表,能够直接复制粘贴到vimrc配置文件中(“符号后面的都会被识别为注释):

syntax on " 自动语法高亮,其实vim7.3版本语法默认是高亮的

colorscheme evening" 一种好看的配色方案

set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4个字符

set tabstop=4 " 设定 tab 长度为 4个字符

filetype plugin indent on " 开启插件

set ignorecase " 搜索时忽略大小写

set incsearch " 即刻显示当前输入的搜索结果

set hlsearch " 高亮搜索结果

set noerrorbells " 关闭错误信息响铃

set autochdir " 自动切换当前目录为当前文件所在目录

filetype indent on “自动缩进

set autoindent shiftwidth=n “修正缩进,ctrl+T或ctrl+D或者>>、<<均对应n个字符缩进

3、vim实用功能:

3.1、查找功能:

一、最基础的查找:

<Esc>状态,直接按 / 键。而后输入要查找的内容。下一个查找结果按n。若是查找的内容带有符号‘.*[]^%/n?~$ ,则添加转义字符方式“ \ ”再进行查找便可。

二、精确查找:

好比说我要确切地找到一个单词“top”。则按 / 键,而后输入以下内容:

/\<top\>

其实它的意思是,搜索以top开头,并以top结尾的单词。因此若是咱们但愿查找以top开头的全部单词:

/\<top

以top结尾的单词:

/top\>

三、跨文件查找字符:

好比,在进行某个文件的编辑时,我但愿找到当前工做目录中全部含有”include”字符串的cpp文件:

“:grep include *.cpp”

编辑器会暂时弹出terminal或console中,显示查找结果:

 

3.2 分割窗口编辑多个文件:

打开的时候直接打开多个文件进行编辑:

vim -o file1 file2 file3

好比,同时打开名为game.cpp和test.cpp的文件进行编辑:

vim -o test.cpp game.cpp

在不一样的文件以后进行切换:

<Esc>状态下,ctrl+ww。

若是启用了鼠标可用模式的话(:set mouse=a),直接用鼠标点击便可切换。

固然,若是先编辑game.cpp,想同时编辑test.cpp,则键入以下命令:

:split test.cpp

固然若是想垂直分割编辑器框的话,能够用vsplit命令:

:vsplit test.cpp

 

若是记不清咱们到底要打开哪一个文件进行编辑,可使用以下命令:

:browse split

将光标移至须要编辑的文件按<Enter>键便可打开进行编辑:

3.3 代码折叠:

全部折叠命令都以z开头。

zf    "F-old creation (建立折叠)

zo   "O-pen a fold (打开当前折叠)

zc   "C-lose a fold (关闭当前折叠)

zR   "打开全部折叠

zM   "关闭全部折叠

要记住这些实在是略显蛋疼,若是能够用鼠标点击折叠和关闭岂不是很好?

能够经过下列命令实现。

首先,鼠标可用配置为”:set mouse=a”,能够自行指定鼠标模式:”:behave mswin”或者”:behave xterm”(默认)。

而后,结合使用”:set foldcolumn=4”和”:set foldmethod=indent”,便可按照缩进折叠而且显示折叠标志(在此设置空位为4个字符),可用鼠标点击。

3.4 代码间跳转:

代码间跳转也算是比较经常使用的功能——使用一个函数的时候想跳到函数声明或者定义的位置,尤为是它们处于不一样文件中时。使用IDE固然很方便,而vim也是自带这个功能的,不过须要配合ctags命令工具的使用:

ctags官网http://ctags.sourceforge.net/

一、安装ctags:sudo apt-get install exuberant-ctags

二、使用ctags生成连接文件:

ctags -f [输出目录] -R  [需连接的文件所在目录的列表]

好比(只是举个java例子,c,c++,obj-c等相似):

ctags -f ~/.tags -R  $JAVA_HOME/src ~/workspace/ 

三、而后在/etc/vim/vimrc中加入

set tags=~/.tags

便可自动加载生成的tag。

四、跳转:

Ctrl+]前进,ctrl+T后退。

注意,也能够不按上述4步指定输出目录,直接转到指定工做目录输入命令:

ctags *

这样全部文件都会被注上标签,而且当前工做目录中会自动生成tags文件,示例以下:

3.5 vim代码自动补全插件clang_complete的安装:

Vim中的c和c++补全插件很多,比较有名的有OmniComplete,不过它们都要经过ctags命令建立的标签来对字符串进行匹配,比较蛋疼。

在此选了clang_complete,也颇有名,比前者更实用高效,很少介绍了。

折腾了一下子才把clang_complete插件的安装搞定。为了不其余一些没必要要的问题,在这里我给出一个保险的安装方案——虽然看起来比较冗长:

首先,你的vim不能安装过诸如:OmniComplete之类的插件,若是安装过不妨先删除这个插件。

接着,先确保安装了python3:

sudo apt-get install python3

下面确保安装了clang:

sudo apt-get install clang

固然,还要确保本身的vim版本在7.3或以上。

下面安装clang_complete插件:能够点击以下连接进行下载:

http://www.vim.org/scripts/download_script.php?src_id=19588

而后将工做目录转到插件所在目录输入以下安装命令:

vim clang_complete.vmb -c 'so %' -c 'q'

或者直接从github获取安装:

git clone https://github.com/Rip-Rip/clang_complete.git

make

vim clang_complete.vmb -c 'so %' -c 'q'

安装完成后能够在插件文件夹~/.vim/plugin/中找到该插件。不须要了能够删除这些文件。

若是在上述文件没法找到插件文件夹,你能够在vim打开的状态下输入以下命令:

:set runtimepath?

便可得到全部可能的插件保存位置。

接下来应该便可正常使用。

示例:

相关文章
相关标签/搜索