首页 > 学院 > 操作系统 > 正文

vim实用笔记

2024-06-28 13:28:18
字体:
来源:转载
供稿:网友
vim实用笔记

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

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

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

其实现在不少公司指定员工后台开发要用这个编辑器,Ubuntu+vim的开发形式其实挺常见的。Vim确实是非常强大的编辑器,很多IDE可以做的vim都可以做到,想自行增加一些编辑增强或者编译功能的话装对应插件即可。

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

目录:

一、常识

二、vim基础笔记

2.1、基本文本输入

2.2、vim实用基础配置

三、vim实用功能

3.1、查找功能

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

3.3、代码折叠

3.4、代码间跳转

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

一、常识:

1、按Tab可以补全命令;

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

3、vim的配置文件路径一般是:/etc/vim/vimrc,如果你想针对某个特定用户配置一个特定的配置文件,那么在该用户文件夹下创建~/.vimrc文件,并输入配置内容即可;

4、帮助文档的使用,比如说我想知道怎么开启语法高亮(一般默认是已经开启的),那么在vim中键入命令:”:helpsyntax”,即可查看相关帮助信息:

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

二、vim基础笔记:2.1基本文本输入:

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

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

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

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

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

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

7、撤销:<Esc>,u。

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

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

9、命令补全:Tab键可补全命令。Ctrl+D可查看可以补全的命令表,比如:

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

2.2vim实用基础配置:

配置出了可以通过命令实现外,也可以将set内容添加到vim配置文件/etc/vim/vimrc中,当然,添加到vimrc就不需要在set前面加”:”了。

1、设置显示行号可以使用命令”:setnumber”

2、文件自动保存,”:setautowrite”

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

看到其中一个使用条件是:”linuxconsolewithgpm”,那我想应该是缺少了这个东西,所以尝试安装一下:

sudoapt-getinstallgpm

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

4、实用配置列表:

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

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

colorschemeevening"一种好看的配色方案

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

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

filetypepluginindenton"开启插件

setignorecase"搜索时忽略大小写

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

sethlsearch"高亮搜索结果

setnoerrorbells"关闭错误信息响铃

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

filetypeindenton“自动缩进

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

三、vim实用功能:3.1、查找功能:

1、最基础的查找:

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

2、精确查找:

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

//<top/>

其实它的意思是,搜索以top开头,并以top结尾的单词。所以如果我们希望查找以top开头的所有单词:

//<top

以top结尾的单词:

/top/>

3、跨文件查找字符:

比如,在进行某个文件的编辑时,我希望找到当前工作目录中所有含有”include”字符串的cpp文件:

“:grepinclude*.cpp”

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

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

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

vim-ofile1file2file3

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

vim-otest.cppgame.cpp

在不同的文件之后进行切换:

<Esc>状态下,ctrl+ww。

如果启用了鼠标可用模式的话(:setmouse=a),直接用鼠标点击即可切换。

当然,如果先编辑game.cpp,想同时编辑test.cpp,则键入如下命令:

:splittest.cpp

当然如果想垂直分割编辑器框的话,可以用vsplit命令:

:vsplittest.cpp

如果记不清我们到底要打开哪个文件进行编辑,可以使用如下命令:

:browsesplit

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

3.3代码折叠:

所有折叠命令都以z开头。

zf "F-oldcreation(创建折叠)

zo "O-penafold(打开当前折叠)

zc "C-loseafold(关闭当前折叠)

zR "打开所有折叠

zM "关闭所有折叠

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

可以通过下列命令实现。

首先,鼠标可用配置为”:setmouse=a”,可以自行指定鼠标模式:”:behavemswin”或者”:behavexterm”(默认)。

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

3.4代码间跳转:

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

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

1、安装ctags:sudoapt-getinstallexuberant-ctags

2、使用ctags生成链接文件:

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

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

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

3、然后在/etc/vim/vimrc中加入

settags=~/.tags

即可自动加载生成的tag。

4、跳转:

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

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

ctags*

这样所有文件都会被注上标签,并且当前工作目录中会自动生成tags文件,示例如下:

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

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

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

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

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

接着,先确保安装了python3:

sudoapt-getinstallpython3

下面确保安装了clang:

sudoapt-getinstallclang

当然,还要确保自己的vim版本在7.3或以上。

下面安装clang_complete插件:可以点击如下链接进行下载:

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

然后将工作目录转到插件所在目录输入如下安装命令:

vimclang_complete.vmb-c'so%'-c'q'

或者直接从github获取安装:

gitclonehttps://github.com/Rip-Rip/clang_complete.git

make

vimclang_complete.vmb-c'so%'-c'q'

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

如果在上述文件无法找到插件文件夹,你可以在vim打开的状态下输入如下命令:

:setruntimepath?

即可获得所有可能的插件保存位置。

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

示例:


上一篇:Redis学习

下一篇:菜鸟安装gcc

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表