如何将我的Vim配置修改为适应长尾关键词的编辑模式?

2026-04-19 11:221阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1230个文字,预计阅读时间需要5分钟。

如何将我的Vim配置修改为适应长尾关键词的编辑模式?

在home目录下创建+.vim文件夹,并在其中建立plugin文件夹+1个visualmark插件+visualmask插件,它提供可视书签功能,可在书签间跳跃。安装后无需设置即可直接使用,普通模式下即可使用。


在home目录下建立 .vim文件夹 ,在其中建立plugin文件夹


1 visualmark

如何将我的Vim配置修改为适应长尾关键词的编辑模式?




插件 visualmask ,他的功能就是提供可视书签,可以在所编著的书签间进行跳跃。


 安装后不用任何设置即可使用,在普通模式下按 ctrl+F2 或者 mm 即可进行设置高亮书签;按 F2 或 Shift+F2 进行跳跃;将光标移动到书签上,再按 ctrl+F2 或 mm 取消该书签。效果如下:




安装:

把下载下来的 visualmask.vim 放到 $HOME/.vim/plugin 目录下。


帮助:

见 visualmask.vim 的开头部分。




 我在使用的过程中遇到一个问题,每次添加书签的时候都会提示:E197: Cannot set language to "en_US"。于是我将 visualmask.vim 的第55行:




exec ":lan mes en_US"


  改成:




exec ":lan mes en_US.utf8"


  这样就没问题了。



2

Ctags

下载地址:ctags.sourceforge.net

如果ubuntu14.04,直接apt-get install ctags即可。

用法:

shell下

ctags -R *

ctags -R updater 只对./updater下的文件生成tags文件

给单个文件建立tag

ctags {filename}

这种有个问题,成员变量没有包含在里面。所以自动完成对象的成员时没有提示。

解决办法:


$ctags -R --fields=+iaS --extra=+q *


–fields=[+|-]flags
–fields指定tags的可用扩展域(extension fields),以包含到tags入口。
i:继承信息Inheritance information
a:类成员的访问控制信息 Access (or export) of class members
S: 常规签名信息,如原型或参数表 Signature of routine(e.g. prototype or parameter list)
–extra=[+|-]flags
指定是否包含某种扩展信息到tags入口。
q:包含类成员信息(如c++,java,Eiffel)。
但就算是C 语言的结构,也需要这两个参数设置才能获取成员信息。

这样就能自动完成结构和类的成员了。



在tags文件所在目录下打开tags vim会自动加载tags文件

如果tags文件不再当前目录下,可以在vim下设置,制定使用那个ctag文件

:ser tag=tag_file_path

可以在~/.vimrc中设置一直使用当前目录下的tags文件

:set tag = $PWD/tags

tags文件缺省按字母大小写排序

vim下

3 :tag {tagname} 跳转到tagname这个标签, 而且这时在输入tagname时,如果记不全还可以用tab自动不全!

4 ctrl + ] 跳到当前光标下的标签

有些环境下CTRL+]快捷键不出现同名跳转列表,而是直接跳转到查找到的第一条记录,此时可以使用g+]代替

5 ctrl + t 跳到前一个标签, t前面加数字n可以往回调n次

6 :tags 显示标签栈,只能显示

:ts 显示出标签栈,可以选择并跳转

7 ctrl + g可以现实当前所在文件名以及行号

在tags的子文件夹下都可以的。因为ctags会向上一级目录寻找。

Cscope:

apt-get install cscope安装

安装好后在代码目录执行

$cscope -Rbk生成cscope的数据库文件:cscope.out

然后用gvim打开代码,执行:cs add cscope.out即可

然后就可以在vim的命令模式下利用cscope强大的搜索功能了 比如

cs find c get_args

在vimrc中加入以下,可以在启动vim后自动加载cscope的数据库文件

if has("cscope") set csprg=/usr/bin/cscope set csto=0 set cst set csverb set cspc=3 "add any database in current dir if filereadable("cscope.out") cs add cscope.out "else search cscope.out elsewhere else let cscope_file=findfile("cscope.out", ".;") let cscope_pre=matchstr(cscope_file, ".*/") if !empty(cscope_file) && filereadable(cscope_file) exe "cs add" cscope_file cscope_pre endif endif endif

VIM支持8种cscope的查询功能,如下:

c:Find functions calling this function//查找调用本函数的函数

d:Find functions called by this function //查找本函数调用的函数

e:Find this egrep pattern//查找egrep模式,相当于egrep功能,但查找速度快多了

f:Find this file //查找并打开文件,类似vim的find功能

g:Find this definition//查找函数、宏、枚举等定义的位置,类似ctags的功能

i:Find files #including this file //查找包含本文件的文件

s:Find this C symbol //查找C语言符号,即查找函数名、宏、枚举值等出现的地方

t:Find assignments to //查找指定的字符串


taglist

进入~/.vim目录,将Taglist安装包解压,解压后会在~/.vim目录中生成几个新子目录,如plugin和doc(安装其它插件时,可能还会新建autoload等其它目录)

在norm模式下输入Tlist即可显示taglist.



本文共计1230个文字,预计阅读时间需要5分钟。

如何将我的Vim配置修改为适应长尾关键词的编辑模式?

在home目录下创建+.vim文件夹,并在其中建立plugin文件夹+1个visualmark插件+visualmask插件,它提供可视书签功能,可在书签间跳跃。安装后无需设置即可直接使用,普通模式下即可使用。


在home目录下建立 .vim文件夹 ,在其中建立plugin文件夹


1 visualmark

如何将我的Vim配置修改为适应长尾关键词的编辑模式?




插件 visualmask ,他的功能就是提供可视书签,可以在所编著的书签间进行跳跃。


 安装后不用任何设置即可使用,在普通模式下按 ctrl+F2 或者 mm 即可进行设置高亮书签;按 F2 或 Shift+F2 进行跳跃;将光标移动到书签上,再按 ctrl+F2 或 mm 取消该书签。效果如下:




安装:

把下载下来的 visualmask.vim 放到 $HOME/.vim/plugin 目录下。


帮助:

见 visualmask.vim 的开头部分。




 我在使用的过程中遇到一个问题,每次添加书签的时候都会提示:E197: Cannot set language to "en_US"。于是我将 visualmask.vim 的第55行:




exec ":lan mes en_US"


  改成:




exec ":lan mes en_US.utf8"


  这样就没问题了。



2

Ctags

下载地址:ctags.sourceforge.net

如果ubuntu14.04,直接apt-get install ctags即可。

用法:

shell下

ctags -R *

ctags -R updater 只对./updater下的文件生成tags文件

给单个文件建立tag

ctags {filename}

这种有个问题,成员变量没有包含在里面。所以自动完成对象的成员时没有提示。

解决办法:


$ctags -R --fields=+iaS --extra=+q *


–fields=[+|-]flags
–fields指定tags的可用扩展域(extension fields),以包含到tags入口。
i:继承信息Inheritance information
a:类成员的访问控制信息 Access (or export) of class members
S: 常规签名信息,如原型或参数表 Signature of routine(e.g. prototype or parameter list)
–extra=[+|-]flags
指定是否包含某种扩展信息到tags入口。
q:包含类成员信息(如c++,java,Eiffel)。
但就算是C 语言的结构,也需要这两个参数设置才能获取成员信息。

这样就能自动完成结构和类的成员了。



在tags文件所在目录下打开tags vim会自动加载tags文件

如果tags文件不再当前目录下,可以在vim下设置,制定使用那个ctag文件

:ser tag=tag_file_path

可以在~/.vimrc中设置一直使用当前目录下的tags文件

:set tag = $PWD/tags

tags文件缺省按字母大小写排序

vim下

3 :tag {tagname} 跳转到tagname这个标签, 而且这时在输入tagname时,如果记不全还可以用tab自动不全!

4 ctrl + ] 跳到当前光标下的标签

有些环境下CTRL+]快捷键不出现同名跳转列表,而是直接跳转到查找到的第一条记录,此时可以使用g+]代替

5 ctrl + t 跳到前一个标签, t前面加数字n可以往回调n次

6 :tags 显示标签栈,只能显示

:ts 显示出标签栈,可以选择并跳转

7 ctrl + g可以现实当前所在文件名以及行号

在tags的子文件夹下都可以的。因为ctags会向上一级目录寻找。

Cscope:

apt-get install cscope安装

安装好后在代码目录执行

$cscope -Rbk生成cscope的数据库文件:cscope.out

然后用gvim打开代码,执行:cs add cscope.out即可

然后就可以在vim的命令模式下利用cscope强大的搜索功能了 比如

cs find c get_args

在vimrc中加入以下,可以在启动vim后自动加载cscope的数据库文件

if has("cscope") set csprg=/usr/bin/cscope set csto=0 set cst set csverb set cspc=3 "add any database in current dir if filereadable("cscope.out") cs add cscope.out "else search cscope.out elsewhere else let cscope_file=findfile("cscope.out", ".;") let cscope_pre=matchstr(cscope_file, ".*/") if !empty(cscope_file) && filereadable(cscope_file) exe "cs add" cscope_file cscope_pre endif endif endif

VIM支持8种cscope的查询功能,如下:

c:Find functions calling this function//查找调用本函数的函数

d:Find functions called by this function //查找本函数调用的函数

e:Find this egrep pattern//查找egrep模式,相当于egrep功能,但查找速度快多了

f:Find this file //查找并打开文件,类似vim的find功能

g:Find this definition//查找函数、宏、枚举等定义的位置,类似ctags的功能

i:Find files #including this file //查找包含本文件的文件

s:Find this C symbol //查找C语言符号,即查找函数名、宏、枚举值等出现的地方

t:Find assignments to //查找指定的字符串


taglist

进入~/.vim目录,将Taglist安装包解压,解压后会在~/.vim目录中生成几个新子目录,如plugin和doc(安装其它插件时,可能还会新建autoload等其它目录)

在norm模式下输入Tlist即可显示taglist.