标签 vim 下的文章

http://blog.163.com/lgh_2002/blog/static/4401752620108923318287/ let g:DoxygenToolkit_authorName="" let s:licenseTag = "Copyright(C)\" let s:licenseTag = s:licenseTag . "For free\" let s:licenseTag = s:licenseTag . "All right reserved\" let g:DoxygenToolkit_licenseTag = s:licenseTag let g:DoxygenToolkit_briefTag_funcName="yes" let g:doxygen_enhanced_color=1

let g:DoxygenToolkit_briefTag_pre="@Synopsis " let g:DoxygenToolkit_paramTag_pre="@Param " let g:DoxygenToolkit_returnTag="@Returns " let g:DoxygenToolkit_blockHeader="--------------------------------------------------------------------------" let g:DoxygenToolkit_blockFooter="----------------------------------------------------------------------------" let g:DoxygenToolkit_authorName="Mathias Lorente" let g:DoxygenToolkit_licenseTag="My own license" let g:DoxygenToolkit_authorName="drunkedcat, whitelilis@gmail.com" let s:licenseTag = "Copyright(C)\" let s:licenseTag = s:licenseTag . "For free\" let s:licenseTag = s:licenseTag . "All right reserved\" let g:DoxygenToolkit_licenseTag = s:licenseTag let g:DoxygenToolkit_briefTag_funcName="yes" let g:doxygen_enhanced_color=1

使用DoxLic、DoxAuthor、Dox命令自动生成,注释的样式和文字完全可配置.

今天想弄一下VIM的函数高亮,结果搞了一个下午,才终于搞定。

首先是按照下面这个网址写了一个 ~/.vim/syntax/c.vim

http://blog.csdn.net/wooin/article/details/1858917 "======================================================== " Highlight All Function "======================================================== syn match cFunction "/<[a-zA-Z_][a-zA-Z0-9]/>[^()])("me=e-2 syn match cFunction "/<[a-zA-Z][a-zA-Z_0-9]/>/s("me=e-1 hi cFunction gui=NONE guifg=#B5A1FF

"======================================================== " Highlight All Math Operator "======================================================== " C math operators syn match cMathOperator display "[-+/*/%=]" " C pointer operators syn match cPointerOperator display "->/|/." " C logical operators - boolean results syn match cLogicalOperator display "[!<>]=/=" syn match cLogicalOperator display "==" " C bit operators syn match cBinaryOperator display "/(&/||/|/^/|<>/)=/=" syn match cBinaryOperator display "/~" syn match cBinaryOperatorError display "/~=" " More C logical operators - highlight in preference to binary syn match cLogicalOperator display "&&/|||" syn match cLogicalOperatorError display "/(&&/|||/)="

" Math Operator hi cMathOperator guifg=#3EFFE2 hi cPointerOperator guifg=#3EFFE2 hi cLogicalOperator guifg=#3EFFE2 hi cBinaryOperator guifg=#3EFFE2 hi cBinaryOperatorError guifg=#3EFFE2 hi cLogicalOperator guifg=#3EFFE2 hi cLogicalOperatorError guifg=#3EFFE2

但是非常悲剧的是这个用起来没有作用而且还报错。结果在下面的评论中才发现原来所有的 '/' 都

应该是 '\'。

按照下面这个网址改了一下,但是还是悲剧。虽然不报错了,但是函数还是没有高亮。

http://www.cppblog.com/besterChen/archive/2010/02/21/108124.aspx

然后找到另外一个网址,内容如下:

"highlight Functions syn match cFuntions display "[a-zA-Z_]{-1,}\s{-0,}({1}"ms=s,me=e-1 hi def link cFuntions Title 就是先定义一个语法匹配,然后将匹配的高亮设为Title(深红色的函数高亮,很像Visual Asist)。当然也可以设为其他的高亮定义,自己定义颜色也行。

使用下面的命令来获得颜色组的完整列表:

so $VIMRUNTIME/syntax/hitest.vim

我把颜色的那一句改为hi def link cFuntions Title,终于有变化了,这个原因我继续向下找。

在下面这个网址我找到了部分线索。

首先使用VIM和VI的非兼容模式,在~/.vimrc中使用 set cp

然后打开一个 c文件
set cp?

就可以知道现在是否兼容.

然后在 ~/.vimrc 中加入下面的内容 代码: nnoremap :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '> trans<' . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">"

这个是解除 ctrl+h 绑定 光标左移的功能

目的是为了确认到底是没有成功设置颜色组还是没有成功设置颜色。
代码:
set ft

确认文件类型是 c 或者 cpp,然后把光标移到应该高亮但没有高亮的地方按下 Ctrl-H,看看能不能显示出你自己定义的高亮组名。

经过检查发现我是成功绑定了组,但就是不能成功高亮。

在下面的网址中,我得到了关键线索

Vim中对颜色(包括字体等其他样式)的设置是用hightlight命令,可简写为hi。例如对函数名的设置:

highlight Function cterm=bold,underline ctermbg=red ctermfg=green

这条命令可使函数名的字体改为粗体/有下划线/绿色/红色背景。除了Function关键字,还有String/Number/Float/Label,还有针对某门编程语言的关键字如:phpFunctions/phpType/phpFloat等。

这下就搞明白了。我是在字符界面使用vim的,cterm 这个不就是字符终端的意思么。 那么可以推测 gui 是在窗口界面下使用vim 或则 gvim 才能起作用的。

下面这个命令让我确定了我的想法。

官方原版的设置既有cterm 也有 gui。

  1. 查看所有的已有设置

直接执行highlight命令即可,不带任何参数。

下面是一些标签页的设置

1) 对tab标签样式的设置

每种主题都会有美中不足,比如我一直喜欢用的torte,它的默认样式下tab标签是黑底白字有下划线,选中状态为无下划线,看起来非常费眼睛。我进行了如下设置:

highlight TabLine term=underline cterm=bold ctermfg=9 ctermbg=4 highlight TabLineSel term=bold cterm=bold ctermbg=Red ctermfg=yellow

这里涉及到两个标签:TabLine(普通标签样式)/TabLineSel(选中状态标签的样式)。

(2) 对自动补全提示样式的设置

我使用的提示插件是。

highlight Pmenu ctermbg=darkred highlight PmenuSel ctermbg=red ctermfg=yellow

但是这样还是有些问题,我继续寻找,终于在另外一个老外的网页上面发现了,自己新建的最好放在

~/.vim/after/syntax/c/fun.vim

after 意思是在加载完原来的设置的基础上,在加载下面的设置

c C语言的设置,打开C相关的文件的时候会加载这个文件目录下面的设置

这里是我最终修改好的设置

可以完美实现我的需要

"==================================================== " Highlight All Function " =================================================== syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]>[^()])("me=e-2

syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]>\s("me=e-1

hi cFunction cterm=bold ctermfg=blue

"=================================================== " Highlight All Class Name " ================================================== syn match cClassName "\<[a-zA-Z_][a-zA-Z_0-9]>\:"me=e-1 hi cClassName cterm=bold ctermfg=yellow

"==================================================== " Highlight All Math Operator " =================================================== " c math operators syn match cMathOperator display "[-+*\%=]"

" c opinter operators syn match cPointerOperator display "->|.|\:\:"

" c logical operators - boolean results syn match cLogicalOperator display "[!<>]=\=" syn match cLogicalOperator display "=="

" c bit operators syn match cBinaryOperator display "(&|||\^|<<|>>)=\="

syn match cBinaryOperator display "\~"

syn match cBinaryOperatorError display "\~="

" More c logical operators - highlight in preference to binary syn match cLogicalOperator display "&&|||"

syn match cLogicalOperatorError display "(&&|||)="

" more c priority operators -highlight in preference to binary syn match cPriorityOpreator display "(|)|[|]|{|}"

" match operator hi cMathOperator ctermfg=blue

hi cPointerOperator ctermfg=red

hi cLogicalOperator ctermfg=yellow

hi cBinaryOperator ctermfg=5

hi cBinaryOperatorError ctermfg=red

hi cLogicalOperator ctermfg=yellow

hi cLogicalOperatorError ctermfg=yellow

hi cPriorityOpreator ctermfg=6

created by

script type ftplugin

description You can add your author info in any source files,such as cpp,c,java,and c#,python,php,bash.... Like this: /*=============================================================================

Author: dantezhu -

Email: zny2008@gmail.com

FileName: test2.cpp

Description:

Version: 0.0.1

LastChange: 2011-02-15 19:32:25

History:

=============================================================================*/ when you type ,this will add in the head of your source file,and when you type again,It will update automatically.

1)you need install The NERD Commenter first. url is :

2)you need some config in vimrc:

let g:vimrc_author='dantezhu' let g:vimrc_email='zny2008@gmail.com' let g:vimrc_homepage=''

nmap :AuthorInfoDetect

My homepage is ,and wellcome。

install details Put this file in the vim plugins directory (~/.vim/plugin/) to load it automatically.

解压缩时,要把压缩包中的目录结构完整的解压缩到VIM\vimfiles目录中。完成后,应该分别找到VIM\vimfiles\doc\NERD_tree.txt文件和VIM\vimfiles\plugin\NERD_tree.vim文件。然后在vim中输入命令:helptagsVIM\vimfiles\doc,将NERDTree的帮助文档添加到vim中。

最后在_vimrc添加如下内容: " NERDTree map :NERDTreeToggle

(注意和:NERDTreeToggle之间有个英文空格)

重启vim后,按下F10键,就可以在左侧看到一个目录树了。在目录树窗口中按下?键可以查看详细的帮助信息。

最常用的操作键有: C(大写C键) 将光标所在目录设置为根目录 u(小写u键) 转到上一级目录 o(小写o键) 展开(或折叠)光标所在目录的子目录。如果光标所在位置是一个文件,则在编辑窗口中打开该文件

此外在目录树窗口中输入目录:Bookmark收藏名还可以将光标所在目录添加到收藏夹中。下次使用:BookmarkToRoot收藏名可以直接转到该目录,并且以该目录作为根目录。更多命令可以参考NERDTree的帮助文档(:help NERD_tree.txt)。

vim NERD tree 书签 有两个概念需要说明 一个是 NERD tree 启用后,显示的目录 一个是vim的当前目录

两个是不一样的 例如 我 NERD tree 显示的是 d:\phpnow\htdocs\drupal 目录 然后我新建一个文件 a.php 保存之后去查看 a.php 并不是在 d:\phpnow\htdocs\drupal 下面 而是在 vim.exe 所在的目录 即当前目录 打开vim 之后 用 :pwd 查看当前目录

修改当前目录 可以在vim配置文件里面 加上 :cd D:\PHPnow\htdocs\drupal
或者在 vim 里面 用 :cd 目录地址 命令切换目录

Bookmark bookmark_name 将选中结点添加到书签列表中,并命名为name(书签名不可包含空格); 如与现有书签重名,则覆盖现有书签。

OpenBookmark bookmark_name 打开指定的文件。(参数必须是文件书签) 如果该文件在当前的目录树下,则打开它的上层结点并选中该书签

ClearBookmarks [] 清除指定书签;如未指定参数,则清除所有书签

加好标签之后 就可以 :OpenBookmark bookmark_name 打开目录树 方便编辑不同项目

简便方式是这样的

修改vim 配置文件 加上

"NERDTree map :NERDTreeToggle =""

保存之后 再打开vim

按 CTRL + t vim 下方出现

再在后边补上你用 :Bookmark 命令添加的书签的书签名称 然后回车 就看到你希望显示的目录树了

ps:

最好在 vim配置里面 加上

let NERDTreeBookmarksFile='/usr/share/vim/NerdBookmarks.txt'

制定书签存放的位置 出问题了可以手动修改他 over

http://blog.csdn.net/hadeys/article/details/6962979 "==== F3 NERDTree 切换 map :NERDTreeToggle imap :NERDTreeToggle

  1. 常用快捷键:

    o - 打开所选文件或目录 enter - 相当于o go - 类似o, 但光标仍然停留在NERD_tree t - 在新标签中打开所选文件 T - 类似t, 但光标仍然停留在NERD_tree i - 在一个水平分割窗口中打开文件 gi - 类似i, 但光标仍然停留在NERD_tree s - 在一个垂直分割窗口中打开文件 |NERDTree-s| gs - 类似s, 但光标仍然停留在NERD_tree O - 递归打开所选目录 ctr+w+h 光标focus左侧树形目录,ctrl+w+l 光标focus右侧文件显示窗口

http://blog.csdn.net/ThinkHY/article/details/5471576

"NERDTree plugin

let NERDTreeWinPos = "right" "where NERD tree window is placed on the screen

"let NERDTreeWinSize = 31 "size of the NERD tree

nmap :NERDTreeToggle" Open and close the NERD_tree.vim separately

  这是一款供Vim使用的插件,看名字可以知道,它和同属一个作者。使用这款插件,你可以对多种文件类型的文件进行不同方式地、快速地注释。这对使用Vim来写代码或者修改配置文件的同学来说,无疑是提升效率和快感的一件利器。你可以到这个插件,将压缩包里面的doc/和plugin/文件夹丢到~/.vim/下面就是安装了。为了可以使用其帮助文档,你还需要在Vim中执行:helptags ~/.vim/doc/来注册。

install details The NERD Commenter requires Vim 7 or higher.

Extract the plugin files in your ~/.vim (*nix) or ~/vimfiles (Windows). You should have 2 files: plugin/NERD_commenter.vim doc/NERD_commenter.txt

Next, to finish installing the help file run:
helptags ~/.vim/doc

See |add-local-help| for more details.

Make sure that you have filetype plugins enabled, as the script makes use of |'commentstring'| where possible (which is usually set in a filetype plugin). See |filetype-plugin-on| for details, but basically, stick this in your vimrc filetype plugin on

  简单介绍下NERD Commenter的常用键绑定,以C/C++文件为例,详析的使用方法,请:h NERDCommenter。在Normal或者Visual 模式下:

,ca,在可选的注释方式之间切换,比如C/C++ 的块注释/* */和行注释//
,cc,注释当前行
,c,切换注释/非注释状态
,cs,以”性感”的方式注释
,cA,在当前行尾添加注释符,并进入Insert模式
,cu,取消注释
Normal模式下,几乎所有命令前面都可以指定行数
Visual模式下执行命令,会对选中的特定区块进行注释/反注释

注:各命令前缀是可以自己设置的,通常是逗号’,'或者’\’.

你好,我按照NERD Commenter安装好了,但是为什么我按,cc就给当前行删除了呢?我试了下\cc,管用了,为什么呢?能不能把这个配置或者什么给我讲清楚,网上我找不到资料,谢谢你了! ↑ @ September 8, 2011,2:37 pm()

有一个选项mapleader定义了所代表的字符,许多插件的键映射使用了这个,可以根据需要在配置文件里面set mapleader=,设置, ^_^

这个命令前缀怎么设置呢? ↑ @ April 1, 2011,8:01 pm()

let mapleader=”,”
参考:h