2 Star 2 Fork 0

棋有此理 / vim73

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

#vim73

##插件

###Pathogen GitHub官网:https://github.com/tpope/vim-pathogen

插件网址:http://www.vim.org/scripts/script.php?script_id=2332

是一款用于管理vim插件的插件,可以理解成是vim的插件加载器,通过Pathogen,可以将不同的插件放到不同的目录里,这样,各个插件之间的文件都独立于自己的目录,删除一个插件,只要直接删除这个插件的目录就行了,不用再vimfiles下一个一个的找了。

###Taglist 插件网址:http://www.vim.org/scripts/script.php?script_id=273

简介

TagList插件,是一款基于ctags,在vim代码窗口旁以分割窗口形式显示当前的代码结构概 览,增加代码浏览的便利程度的vim插件。

安装

上网下载Taglist插件[1],下载完成后解压,再将文件下的taglist.vim使用cp命令拷贝 到HOME/.vim/plugin文件夹下(cp -r taglist.vim ~/.vim/plugin)

配置

使用sudo vim /etc/vim/vimrc 编辑vim的配置文档,在其中加入如下命令:

"""""""""""""""""Taglist设置"""""""""""""""""
""let Tlist_Auto_Open = 1
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
let Tlist_Show_One_File = 1
let Tlist_Exit_OnlyWindow = 1

使用

在Vim中加载代码文件后,可以使用以下命令控制taglist TlistOpen(直接Tlist也可)打开并将输入焦点至于标签列表窗口,效果如上图所示

TlistClose关闭标签列表窗口 TlistToggle切换标签列表窗口状态(打开←→关闭),标签列表窗口是否获得焦点取决于 其他配置。

  • ctl-w+w或ctl-w+ 方向键窗口切换(taglist本质上是一个vim分隔窗口,因此可以使用 ctl-w系列快捷键对窗口进行切换操作)在Taglist窗口主要有以下操作
  • 按F1:打开帮助回车键:跳到光标所在的标记的定义处(如将光标移到main函数,按回车键)
  • o:新建一个窗口,跳到标记定义处
  • p:预览标记定义(仍然在taglist窗口)
  • 空格:显示标记的原型(如函数原型)
  • u:更新标记列表(比如源文件新增了一个函数,并在保存后,可在taglist窗口按u)
  • s:选择排序字段(暂时我也不知道什么意思)
  • d:删除光标所在的taglist文件(如用vi打开了两个文件f1.c,f2.c可以删除f1.c的标记)
  • x:n放大/缩小taglist窗口
  • +:展开(指标记)
  • -:折叠
  • *:全部展开
  • =:全部折叠
  • [[:将光标移到前一个文件的起点
  • ]]:将光标移到后一个文件的起点
  • q:退出taglist窗口
  • F1:关闭帮助

###TxtBrowser http://www.vim.org/scripts/script.php?script_id=2899

以下内容来源于:http://xbeta.info/vim-txtbrowser.htm

TxtBrowser是一款Vim插件,旨在提供更好的txt浏览体验。主要功能有:为纯文本自动生 成目录树侧边栏(taglist窗口)、语法高亮、多项扩展功能(执行url、网络搜索当前词 等)。TxtBrowser由国内网友ypguo开发,近期更新活跃,并且解决了taglist.vim插件不 能处理中文文件路径的问题,值得关注。

功能展示

  以下是功能简介,更多请参见作者介绍,以及官方下载包中的txtbrowser.cnx文件。

1.目录树侧边栏

  用Vim打开纯文本类型的文件(.txt 或 :se ft=txt),键入一条命令(:Tlist)或 按下对应热键(可自定义,示例如下),会生成目录树侧边栏(即taglist窗口)。在目 录栏点击相应标签,正文会相应跳转。目录栏的内容既包括正文目录,也包括图片目录、 表格目录,并可进一步自定义。更新正文后,键入命令(:TlistUpdate)或按下对应热键 (可自定义,示例如下),即可刷新目录栏。

:nmap <silent> <F8> <ESC>:Tlist<RETURN>
:noremap <silent> <F5> <ESC>:TlistUpdate<RETURN>

2.语法高亮

  纯文本也可以“多姿多彩”!TxtBrowser可以使关键文字高亮显示,突出显示标题、 关键字、列举项。可以提高效率,愉悦心情。通过 :colorscheme colorname 命令,可以 尝试不同的着色方案。

3.其他扩展功能  

  • 把光标放到 URL上,执行 :TxtbrowserUrl (或 ←leader→g)打开所在处的URL ,包括网址、各种文件(包括pdf、mp3等)、Email地址。
  • 把光标放到单词上,执行 :TxtbrowserWord (或 ←leader→f)打开网络字典查 单词。
  • 把光标放到单词上,执行 :TxtbrowserSearch (或 ←leader→s)打开google搜 索。

安装及使用笔记

重要说明:以下内容为xbeta试用当时的记录,有些地方不适用于后续版本TxtBrowser。 比如,taglist插件出了修正版,.ctags文件不再需要……   

说明:编程人员对tag、ctags、taglist都很熟悉。但对于象我这样不编程的用户来 说,因为TxtBrowser而第一次安装、使用这些东西,还是比较复杂的。记录如下,并提供 对初学者友好地解释。

  1. 安装ctags(http://ctags.sourceforge.net/),ctags是一款程序(exe),用来生成tag文件。tag文件可以理解成索引——某个目录项、关键词……出现在哪个文件的哪一行。下载 Source and binary for Windows 98/NT/2000/XP,即 ctags58.zip。只需要把其中的 ctags.exe(约300KB)解压到 windows 目录(或其他在path的目录)。

  2. 安装taglist(http://www.vim.org/scripts/script.php?script_id=273) 重要说明:由于官方taglist.vim对中文支持有问题,推荐修订版本。把插件的内容复制到vim安装目录/vimfiles/中。以我为例,新增如下内容:

    d:\soft\Vim\vimfiles\plugin\taglist.vim d:\soft\Vim\vimfiles\doc\taglist.txt

  3. 安装TxtBrowser(http://www.vim.org/scripts/script.php?script_id=2899)   除了大部分内容复制到vimfiles目录,一定要注意 .ctags 文件要复制到 “$Home” 目录。$home可以简单地理解为 c:\Documents and Settings\用户ID\。以我为例,新增 如下内容: d:\soft\Vim\vimfiles\plugin\txtbrowser.vim (生成目录、扩展功能所用的插件) d:\soft\Vim\vimfiles\doc\txtbrowser.cnx (帮助文档) d:\soft\Vim\vimfiles\doc\txtbrowser.txt (帮助文档) d:\soft\Vim\vimfiles\syntax\txt.vim (语法高亮文件) c:\Documents and Settings\zyx.ctags (重要:定义文件文件中,哪些文本生成tag)

  4. 在.vimrc文件里加入:

    syntax on let tlist_txt_settings = 'txt;c:content;f:figures;t:tables' au BufRead,BufNewFile *.txt setlocal ft=txt

  5. 重启vim,打开 http://www.rfc-editor.org/rfc/rfc959.txt ,执行命令 :Tlist, 应该能看到效果了。

###Engspchk http://www.vim.org/scripts/script.php?script_id=195 英文拼写检查插件。

###tagbar http://www.vim.org/scripts/script.php?script_id=3465

类似于Taglist的插件,通过使用,简单的列了几点比taglist优化了的地方。

1.支持头文件的函数列表显示 细心的读者可能会发现,tagbar对函数的可见级别也是做了区分的,分别用+ - # 并配合着色来做了区分

2.对面向对象的支持更好,taglist虽然也会列出类列表,但是整体还是很不直观

3.自动根据文件修改时间来重建,taglist在这一点上体验就很不好,其实明明可以通过这种时间戳的方式来实现

既然tagbar有这么多好处,那我们就赶紧看看怎么用吧~

1.在官网上下载tagbar.vba文件,并执行:so %

2.在vimrc中加入如下配置

nmap <silent> <F4> :TagbarToggle<CR>
let g:tagbar_ctags_bin = 'ctags'
let g:tagbar_width = 30

3.按下F4即可显示列表

###Auto-Pair

http://www.vim.org/scripts/script.php?script_id=3599

vs装了va之后,输入{,[这些符号时,都会自动完成配对的},],虽然工作量非常小,但是实际使用起来的时候还是赶紧方便了不少,因为不需要输入{,然后输入},最后再定位到{}之间。在vim下,auto pairs这一插件正好提供了这个功能。

他的功能有:

补全对称的 {, [, ', "等符号 自动补空格,当输入{时,你会得到{|},这样的符号 中间的|代表光标所在位置(下同,|都代表光标所在位置,不再提醒) 然后按空格的时候,会自动在光标两边各加入一个空格,结果就是{ | },而不是{ |}. 自动插入新行,输入{|}时,按回车,会自动插入新行,结果会是这样 { | } 新行是带正确缩进的。 输入时跳过',},]等符号,例如: 在{ | }这种情况下,你输入}的时候,会跳过后面的那个},而不是输入多一个} 定位},],例如在 { | } 或者 [ | ]这种情况下,输入}或],会跳到匹配的}或]符号后面。 快速包装一个单词,如果你已经输入了一个单词word,现在想在外面加入一层括号,就可以在word前先输入一个括号,结果是这样(|)word,然后按alt+e,那么结果就是(word). 这写都是比较常用的功能,其他更详细的介绍可以查看help。


##技巧

状态栏 (statusline)

转自http://blog.csdn.net/strategycn/article/details/7620261

默认的状态行,左侧显示当前打开的文件名,右侧显示当前所处的行列位置。当你执行 Vim命令时,状态行将消失并显示命令输入及输出。

通常状态行用反色显示。你可以通过修改highlight选项中的s字符来改变。例如,sb设置 为粗体字。如果状态行没有启用高亮 (sn),那么字符^表示当前窗口,字符=表示其它窗 口。如果支持鼠标并且已经通过设置mouse选项使之启动,那么你可以用鼠标拖动状态行 以改变窗口的大小。

定制状态行

我们可以使用以下命令来定义状态行:

:set statusline format

例如下面的命令:

:set statusline=The file is"%f"

其中,%用来指明一个特殊区域。例如%f,将在状行中包含文件名。

选项包含printf风格的%项目,中间可以间杂普通文本。内容默认为右对齐,如果希望左对齐,那么可以在%后面加上-。数字内容是忽略开头0显示的,如果需要显示前导0,那么可以在%后加上一个"0"。单个百分号可以用"%%"给出。最多可给出80个项目。

如果此选项以 "%!" 开始,它用作表达式。计算此表达式的结果用作选项值。

参数列表

  • %(...%) 定义一个项目组。
  • %{n}* %对其余的行使用高亮显示组Usern,直到另一个%n*。数字n必须从1到9。用%或%0可以恢复正常的高亮显示。
  • %< 如果状态行过长,在何处换行。缺省是在开头。
  • %= 左对齐和右对齐项目之间的分割点。
  • % 字符%
  • %B 光标下字符的十六进制形式
  • %F 缓冲区的文件完整路径
  • %H 如果为帮助缓冲区则显示为HLP
  • %L 缓冲区中的行数
  • %M 如果缓冲区修改过则显示为+
  • %N 打印机页号
  • %O 以十六进制方式显示文件中的字符偏移
  • %P 文件中光标前的%
  • %R 如果缓冲区只读则为RO
  • %V 列数。如果与%c相同则为空字符串
  • %W 如果窗口为预览窗口则为PRV
  • %Y 缓冲区的文件类型,如vim
  • %a 如果编辑多行文本,这个字行串就是({current} of {arguments}),例如:(5 of 18)。如果在命令行中只有一行,这个字符串为空
  • %b 光标下的字符的十进制表示形式
  • %c 列号
  • %f 缓冲区的文件路径
  • %h 如果为帮助缓冲区显示为[Help]
  • %l 行号
  • %m 如果缓冲区已修改则表示为[+]
  • %n 缓冲区号
  • %o 在光标前的字符数(包括光标下的字符)
  • %p 文件中所在行的百分比
  • %r 如果缓冲区为只读则表示为[RO]
  • %t 文件名(无路径)
  • %v 虚列号
  • %w 如果为预览窗口则显示为[Preview]
  • %y 缓冲区的文件类型,如[vim]
  • %{expr} 表达式的结果

显示状态行

即使已经使用以上命令设置选项,状态行还是保持原样,这是因为Vim在默认情况下是不显示状态行的,而仅显示命令缓冲区等极少的信息。我们可以使用以下命令,将状态行显示在窗口底部倒数第二行:

:set laststatus=2

你也可以使用以下命令,移去状态行:

:set laststatus=0

状态行实例

利用以下命令,可以在状态行中显示:当前文件名,文件格式(DOS, Unix),文件类型 (XHTML),当前位置和文件总行数。

:set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]

除了显示的内容,你还可以使用以下命令定义显示的颜色。

:set statusline=%2*%n%m%r%h%w%*\ %F\ %1*[FORMAT=%2*%{&ff}:%{&fenc!=''?&fenc:&enc}%1*]\ [TYPE=%2*%Y%1*]\ [COL=%2*%03v%1*]\ [ROW=%2*%03l%1*/%3*%L(%p%%)%1*]\

需要使用以下命令,自定义高亮显示颜色。

hi User1 guifg=gray
hi User2 guifg=red
hi User3 guifg=white

你还可以通过在_vimrc文件中包括以下命令,使状态行根据状态的不同,显示不同的颜色。

function! InsertStatuslineColor(mode)
	if a:mode == 'i'
		hi statusline guibg=peru
	elseif a:mode == 'r'
		hi statusline guibg=blue
	else
		hi statusline guibg=black
	endif
endfunction

au InsertEnter * call InsertStatuslineColor(v:insertmode)
au InsertLeave * hi statusline guibg=orange guifg=white
hi statusline guibg=black

状态行的文件名部分,在插入状态时显示为橘色背景,这样就能很明显地提醒我们所处的状态.

命令小结

:set statusline format	定制状态行
:set laststatus	显示/取消状态行
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"                             技巧记录
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"(01):set all 可以查看所有已配置的选项
"(02)在每行文本前添加行号:
" :g/^/exec "s/^/".strpart(line(".")." ", 0, 4) 
" :%s/^/\=strpart(line('.')." ", 0, 4) 
" 可视模式下: 
" :s/^/\=strpart((line('.')-line("'<")+1)." ", 0, 4) 
"(03)移除Windows的换行符^M:
" noremap <Leader>m :%s/\r//g<CR>
" :%s/^M$/  注意:^M==ctrl+v+m;$表示行尾
"(04)移除空行中的缩进空白字符:
" map <F2> :%s/s*$//g<cr>:noh<cr>''
"(05)在每行开头加#:
"% s/^/#/g
"(06)删除技巧
"删除空行        :g/^$/d
"删除以#开头的行 :g/^#/d 
"删除至文档尾部  dG 
"删除至文档开头  d1G 
"(07)替换技巧
":%s/src_str/dest_str/g
":start_line,end_lines/src_str/dest_str/g
":%s/^{/{^M#if 0/g 所有函数体开头加#if 0
":%s/^}$/#endif^M}/g 所有函数体结尾加#endif
"其中^M为先按Ctrl+v,然后回车得到
"替换命令最后加g表示替换所有,不加表示替换第一个
"(08)sed替换
":%s/^{/{\r#if 0/g 同11的第一条命令
"sed 的 -i 选项表示在原文件上修改
"(09)
"map <F9> ggVGg?
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Tip: Insert if/endif around block of code
" One of my favorite macros that I use in vim (and vi) inserts a #if 0 #endif
" sandwich around a block of code. I always map this to the 2 key sequence ;'
" which is the semi-colon followed by the single quote. Look at your keyboard,
" you will notice these keys are adjacent to one another. I like this mapping
" because it's very fast, my fingers easily roll from one key to the next,
" obviously YMMV.
" To use this mapping, go to the line of code that you want the '#if 0' to be
" on, type ma to mark this line with the marker a, then move to the line that
" should be last line just above the '#endif' and press ;'
"
" insert #if 0 - #endif around block of code
" map ;' mz'aO<Esc>i#if 0<Esc>'zo<Esc>i#endif<Esc>
" Comments
"
" You could also modify this just a bit and make it a vmap, that way you
" wouldn't need to mark the beginning of the line set (though not vi
" compatible).
" vmap ;' '<O<Esc>i#if 0<Esc>'>o<Esc>i#endif<Esc>
" What about removing '#if 0...'? It should be easy to do.
" I like to do this with a range argument as well - "3;'" in your case.
" However, you get all this with various schemes for commenting/uncommenting
" code...
" I tweaked it a bit by using 0<C-D> (instead of <Esc>i) and made a version
" for Perl by replacing '#if 0' with '=pod' and '#endif' with '=cut'.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

空文件

简介

vim73的插件维护管理,以便在多台机器间共享. 展开 收起
VimL
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
VimL
1
https://gitee.com/llxwj/vim73.git
git@gitee.com:llxwj/vim73.git
llxwj
vim73
vim73
master

搜索帮助