2020-11-07-更新-三、vim特殊使用方法--12、NERDTree NERDTreeDirArrowExpandable 报错
话不多说,想知道vi/vim文档编辑器有多强大请看下图,图1是我自己测试的c语言IDE,图2是小码哥测试的python IDE,通过下面两个图可以见识vim独特之处了!
图1
图2
那么如何来配置以上的IED呢,方法如下:
打开终端,执行下面的命令就自动安装好了:
wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x
或者自己手动安装:(以ubuntu为例)
安装vim sudo apt-get install vim安装ctags:sudo apt-get install ctags安装一些必备程序:sudo apt-get install xclip vim-gnome astyle python-setuptoolspython代码格式化工具:sudo easy_install -ZU autopep8sudo ln -s /usr/bin/ctags /usr/local/bin/ctagsclone配置文件:cd ~/ && git clone git://github.com/ma6174/vim.gitmv ~/vim ~/.vimmv ~/.vim/.vimrc ~/clone bundle 程序:git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle打开vim并执行bundle程序:BundleInstall重新打开vim即可看到效果 以上方法是小码哥配置好的vim IDE,详细问题可以去参考其博客和GitHub: 博客网址:http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html GitHub网址:https://github.com/ma6174/vim/tree/master 小码哥的方法建议直接使用wget,wget亲测可用;当然有能力的可以手动安装,但是极易出错!本人在Ubuntu1404和Centos7上面测试过,都可以使用! 注意小码哥的wim中的() <> []默认都没有开放,需要自己在~/.vimrc中取消注释 , 但是取消后使用 小马哥的vim,发现无法使用() <> []等几个补全功能,解决办法是:使用下面几个能正常使用()补全的vimrc,然后使用小马哥的方法覆盖即可正常使用() <> []了;或者将() [] <>补全的命令放在vimrc最后面
0、注意事项(1)安装注意事项使用小码哥配置好的vim时候,请使用sudo或root模式运行 wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x 如果只使用普通用户模式则可能会出现在root模式无法用各类插件的提示(普通模式下载安装时在 /root/.vim中是没有相关插件的),在root权限下使用以上命令则可避免上面问题,并且会在/root/.vim和~/.vim中分别有相关插件(2)部分电脑硬件快捷键与vim快捷键冲突问题由于vim中内置了很多快捷键,如F1 -F12中的快捷键,但是很多时候F1-F12中的某个键是用来控制电脑声音加减、亮度加减等功能的,此时F1-F12 中的键可以和Fn配合使用,如F3失灵则使用Fn+F3就好了;(dell 燃7000中测试过) 1、 使用小马哥的vim后发现其和普通ide没有什么区别了,全选拖动啊,ctrl+a,del都可以正常使用,对于未定义或者使用不当的地方,还会出现红色>>箭头提示;还有其它一系列的使用方法将在 vim特殊使用方法中持续更新!
2、 F3 或者Ctrl+F3进入目录界面,q退出;
:vertical new 或者:vnew就打开一个竖直的窗口,即为分列打开
vim从右边代码跳到左边目录,只需要ctrl+w就可以了,ctrl+w可以实现不同窗口之间的跳转;
:split 水平打开一个新文件, :split name打开某一个文件
:vsplit 竖直方向打开一个新文件,:vsplit name 竖直方向打开一个名为name的文件
:close 关闭当前窗口; :q也可以退出当前窗口
Shift+/ 打开快熟帮助栏目,有大量针对目录和标签的操作功能说明
:help 打开中文帮助文档,里面包含各种命令和配置的用法(此帮助手册只限于此方式安装的vim)
3、函数、变量显示 :TlistToggle 或者F9就可以显示当前文件的函数、变量信息,可以通过F9或者q来关闭相应窗口,切换功能还是ctrl+w,当显示函数、变量后,可以直接鼠标点击进入到特定的函数或者变量,也可以使用上下左右箭头和enter键选择进入特定函数和变量,当然还可以使用加减或者+-对多个变量函数进行展开折叠; 其中变量显示、折叠相关的设置可以直接在~/.vimrc中查找Tlist* (?Tlist)来查找相关的设置,可以根据需要修改 注意:使用vim的此功能需要安装ctags,使用apt-get install ctags安装ctags后就可以显示所有变量和函数了,不安装的话无法显示 4、gdb调试F8,按F8后就可以调试代码了,r运行调试的程序,ctrl+c退出正在运行的调试程序,q退出gdb模式
5、函数、变量的跳转方法 1)跳转到特定函数、变量可以使用3中的方法,也可以使用下面快捷方法:只需要把光标放在特定函数或者变量处,然后使用以下快捷键就可以快速跳转了,可以快速定位到函数和变量中 2)[+ctrl+i 跳转到函数、变量和#define [+ctrl+d 跳转到#define处 ctrl+i 向前跳到前几次光标位置 ctrl+o 向后跳到后几次光标位置3)shift +3 就可以跳转到特定的单词处,但是该盖茨会变成黑色加亮,可以使用:noh 来取消加亮;也可以使用 ?查找内容 来查找特定的字符串,使用n来定位不同的位置
6、替换单词方法
1)选择一个单词方法:按住v按住e就可以选中一个单词了嗯,不停的按住e就不停的向后以单词为单位来选择;
2)选中后 r 加上字符就讲所有选中的字符变为r之后的那个字符了
3)光标选择某个单词,然后yiw就会复制该单词,光标选择另外一个单词,然后viwp就可以替换该单词了; 当然也可以使用cw来从光标出删除单词并进入insert模式,然后在输入新内容,效果是一样的; 当然可以对一个单词使用yw,对另外一个单词来用cw,使用Esc后再p就可以删除刚刚的单词了注意:如果先对A使用yw,再对B使用dw,再p,则粘贴的维dw的内容,原因为dw的内容已经在第一个删除的buffer中,yw被自动转移到第二个buffer中了; 可以使用下面方法来解决覆盖问题,vim中有多个缓冲器,我们可以把粘贴的内容放在缓冲器中,然后再粘贴到特定地方,比如先将A粘贴在a寄存器中,然后再删除B内容,最后将A寄存器内容粘贴到B处,具体操作如下 :光标先定到A处,用"apw 就将单词复制到a中了,然后使用dw就删除B了,最后用"ap就将a中的内容A粘贴在B处了7、复制和粘贴复制是把指定内容复制到内存的一块缓冲区中,而粘贴是把缓冲区中的内容粘贴到光标所在位置。复制和粘贴的方法如下。yw:将光标所在位置到字尾的字符复制到缓冲区中,y是yank的首字母。nyw:将光标所在位置开始的n个字复制到缓冲区中,n为数字。yb:从光标开始向左复制一个字。nyb:从光标开始向左复制n个字,n为数字。y0:复制从光标前一个字符到行首的所有字符。y$:复制从光标开始到行末的所有字符。yy:复制当前行,即光标所在的行。nyy:复制从当前行开始的n行,n为数字。p:在光标所在位置的后面插入复制的文本,p是paste的首字母。P:在光标所在位置的前面插入复制的文本。np:在光标所在位置的后面插入复制的文本,共复制n次。nP:在光标所在位置的前面插入复制的文本,共复制n次。
8、格式化代码 1) gg 回到文件的第一行 2) shift+v 3) shift+g 回到文件的最后一行4) = 格式化 对于某些文件,可能之前的tab键不是占用4个空格,使用以上格式化无效,可以使用 :retab 来重新解析tab键
9、扩展自己的dict 很多时候vim中的自动补全语法是有限的,而我们经常使用的语法和函数却不包括在内,此时可以自己在补全文件xx.dict中添加自己的语法 vim的语法补全文件基本在 ~/.vim/dict 和 /root/.vim/dict两个文件加中,如下图,可以在c.dict中添加一个socket函数,那么就会多一个socket语法补全了,如下图;
注意:正常情况下,若在普通用户下配置vim的插件,发现在root权限下无法使用,此时需要让root用户访问到她家的vim插件即可,方法1::添加的时候最好在两个dict(~/.vim/dict 和 /root/.vim/dict)中都添加一下,否则只能在普通用户下使用该补全;方法2:将普通用户下的.vim文件夹链接到root用户目录下,即: ln -s /home/用户名/.vim /root/.vim
10、其它快捷方式跳转到行首(正常模式下--非输入模式):Home 、0(注:此处为)对应的0,而非数字键盘上3行3列的0)
跳转到行尾(正常模式下--非输入模式):End 、((注:(为英文模式下的Shift+9)、$;
跳转到文档首:gg、1G
跳转到文档尾:G
11、如何取消vim产生的***.un~和xxx.~文件在vimrc中添加,如下几行即可:
set noundofile set nobackup set noswapfil12、 NERDTree NERDTreeDirArrowExpandable 报错 默认情况下nerdtree 文件夹扩展方式为 实心 "▸",该字符可能无法被识别到,此时每次启动都会报如下错误:
Missing quote: "▸") 或者如下错误: Error detected while processing /home/xg/.vim/bundle/nerdtree/plugin/NERD_tree.vim: line 57: E115: Missing quote: '????) E116: Invalid arguments for function get(g:, 'NERDTreeDirArrowExpandable', '????) 解决方法: 1)更改xx文件中的箭头为>和v ... if !nerdtree#runningWindows() && !nerdtree#runningCygwin() ||| g:NERDTreeSortDirs let g:NERDTreeDirArrowExpandable = get(g:, 'NERDTreeDirArrowExpandable', '>') ||| g:NERDTreeDirArrowExpandable let g:NERDTreeDirArrowCollapsible = get(g:, 'NERDTreeDirArrowCollapsible', 'v') ||| g:NERDTreeDirArrowCollapsible else ... 2)更改.vimrc中的箭头为>和v ... "for nerdtree ctrlp vim-template let g:NERDTreeDirArrows = 1 let g:NERDTreeDirArrowExpandable = '>' let g:NERDTreeDirArrowCollapsible = 'V' let g:NERDTreeGlyphReadOnly = "RO" ...此部分,本文后续将继续更新! vim其它相关小技巧请参考以下文章: vi笔记1——vi之配置一个强大的vi/vim vi笔记2——vi之简单编辑
vi笔记3——vi之快速移动
vi笔记4——vi之超越基础vi笔记1--vi之配置一个强大的vi/vim
vim插件1--taglist vim插件2--autocomplpop vim插件3--dict
四、几个常见的vimrc 版本1-版本3都在以下链接中 http://download.csdn.net/download/u011127242/9705427 以上是本人配置vim的一些小技巧,贴在此处仅供参考学习,其中第三部分本文将继续更新! 在此,再次感谢小码哥无私的分享精神!