本文主要是介绍vi笔记附录1--vi之配置一个强大的c语言、python IED,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
vi笔记附录1--vi之配置一个强大的c语言、python IED
2020-11-07-更新-三、vim特殊使用方法--12、NERDTree NERDTreeDirArrowExpandable 报错
一、vim效果图
话不多说,想知道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-setuptools
- python代码格式化工具:
sudo easy_install -ZU autopep8
sudo ln -s /usr/bin/ctags /usr/local/bin/ctags
- clone配置文件:
cd ~/ && git clone git://github.com/ma6174/vim.git
mv ~/vim ~/.vim
mv ~/.vim/.vimrc ~/
- clone bundle 程序:
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
- 打开vim并执行bundle程序
:BundleInstall
- 重新打开vim即可看到效果
三、vim特殊使用方法
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
跳转到行首(正常模式下--非输入模式):Home 、0(注:此处为)对应的0,而非数字键盘上3行3列的0)
跳转到行尾(正常模式下--非输入模式):End 、((注:(为英文模式下的Shift+9)、$;
跳转到文档首:gg、1G
跳转到文档尾:G
在vimrc中添加,如下几行即可:
set noundofile
set nobackup
set noswapfil
12、 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:NERDTreeSortDirslet g:NERDTreeDirArrowExpandable = get(g:, 'NERDTreeDirArrowExpandable', '>') ||| g:NERDTreeDirArrowExpandablelet 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"
...
vi笔记3——vi之快速移动
vi笔记1--vi之配置一个强大的vi/vim
vim插件1--taglist
vim插件2--autocomplpop
vim插件3--dict
这篇关于vi笔记附录1--vi之配置一个强大的c语言、python IED的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!