您的位置:首页 > 运维架构 > Linux

Linux vim安装与IDE使用详解

2018-11-30 16:53 99 查看

1. vim安装

1.1. 命令

ubuntu系统下,普通用户下输入命令:sudo apt-get install vim-gtk
redHat/Fedora/CentOS系统下,普通用户下输入命令:yum -y install vim*

安装完成后在命令行输入vi 按tab键,若如果出现如下界面,即安装成功

1.2. 问题

在安装过程中若出现问题Could not get lock /var/lib/dpkg/lock,使用命令 ps -A | grep apt 查看包含apt的进程与进程ID,并通过 kill -9 ID 命令杀掉关于apt的进程后再次进行安装即可。

2. vim常用命令

vi编译器是Linux平台一种命令行编辑器,有三种基本模式:
命令模式(command mode):vi的默认模式;
插入模式(insert mode):可以进行编辑;
尾行模式(last line mode):保存内容,查找替换,设置行号等功能性操作。
三种模式间切换如下图所示:

2.1. 命令模式

光标移动:

字符级: 左(h)  下(j)  上(k)  右(l)
单词级: 
w word移动到下个单词首字母
b before上个单词首字母
e end下个单词结尾

行级:
0 行首
$ 行尾

文档级:
G 光标跳到文档尾部
nG 光标跳到文档第n行
gg 光标跳到文档第一行
crtl+f <–> pagedown向下翻页
crtl+b <–> pageup向上翻页
n+enter 向下移动n行

内容删除

「x」:删除光标所在位置的“后面”一个字符
「#x」:如「6x」表示删除光标所在位置的“后面”6个字符
「X」:大写的X,删除光标所在位置的“前面”一个字符
「#X」:如「20X」表示删除光标所在位置的“前面”20个字符
「dd」:删除光标所在行
「#dd」:从光标所在行开始删除#行

内容复制与粘贴

「yw」:将光标所在之处到字尾的字符复制到缓冲区中
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区
「#yy」:如「6yy」表示拷贝从光标所在的该行“往下数”6行文字
「p」:将缓冲区内的字符贴到光标所在位置(通过dd命令删除内容后也可通过p粘贴该内容,此时dd相当于剪切功能)

其他快捷操作

u : 撤销上一操作
. : 重复上一操作

2.2. 插入模式

在命令模式下按下以下字母从命令模式跳转到插入模式:(至此可以输入你想要输入的内容了)
I :在光标前一个位置开始插入
I :光标移动到开头开始插入
a :从光标的下一个位置开始插入
A : 光标移动末尾开始插入
o : 在当前行的下一行创建一个新行开始插入
O : 在当前行的上一行创建一个新行开始插入

2.3. 尾行模式

用于实现保存内容、查找替换、设置行号等等功能性操作
:q :quit退出vi编辑器
:w :write保存修改的内容
:wq :保存并退出
:q! : 强制退出,当对文本内容作了修改而不想要保存时
:w! : 强制保存,当没有文本的写权限时
:set number 或 :set nu : 显示行号
:/内容/ 或 /内容 : 查找指定内容 
:n : 跳转到第n行
: s/targetContent/newContent/g : 替换当前行targetContent为newContent
:n1,n2s/word1/word2/gc : 把n1行到n2行之间的word1替换为word2,并提示是否替换,输入y确认替换

3. vim IDE

经常听到周围有很多人说vim不好用,没有像集成IDE的sourceInsight之类的软件好用。其实,vim提供了大量的插件,通过这些插件可以实现很多功能,完全足够我们日常开发使用,同时直接在vim里开发也能实现快速的编译调试,避免了交叉编译过程。下面分享一些个人使用过后觉得较好的插件,供大家参考。

3.1. 索引插件

3.1.1. ctag插件

提供较为方便的索引功能,首先下载源码 ctags-5.8.tar.gz(以5.8版本为例)
安装:

序号 操作步骤
1 将源码cp到.vim目录下,在.vim目录下解压 tar xzvf ctags-5.8.tar.gz
2 执行 在vim目录下跳转到目录ctags-5.8下 (cd ctags-5.8)
3 执行 ./configure
4 执行 make
5 执行 sudo make install(root权限下)
6 跳转到源代码目录位置 /home/compatible_branch
7 执行 ctags -R * 生成tags标签文件
8 配置.vimrc文件:set tags=/home/compatible_branch/tags

使用:
在源代码目录下执行 vi –t name(此种方法不需打开文件);
在源代码目录下打开vim文件,光标放于词上,按 ctrl+] 查找,按ctrl+t返回(可用于查找函数、变量、宏、结构体)。
使用示例:

光标置于函数setTcontqueueRateLimit上,按 ctrl+] 键查找函数定义,结果查找到两处地方,输入查找结果ID回车即可打开需要的内容。
注:如果出现:“E257: cstag: tag not found ”,建议重新到代码目录,执行 ctags -R *

3.1.2. cscope插件

提供更为强大的索引功能,不仅可以找到函数定义,还可查找调用该函数的函数等等,首先下载源码 cscope-15.8b.tar.gz与vim.tar.bz2
安装:

序号 操作步骤
1 将源码cp到.vim目录下,在.vim目录下解压 tar xzvf cscope-15.8b.tar.gz
2 执行 在vim目录下跳转到目录cscope-15.8b下 (cd cscope-15.8b)
3 执行 ./configure
4 执行 make
5 执行 sudo make install(root权限下)
6 安装配置文件,在 .vim 目录下执行命令 tar xvjf vim.tar.bz2
7 跳转到源代码目录位置 /home/compatible_branch,执行 cscope -Rbkq 创建索引
8 打开任一源码文件按F5生成索引,退出并重新打开
9 在文件 .vimrc 中配置快捷键


使用:
光标置于函数上,按 ctrl + shift + -,然后快速按下所需cscope索引功能对应的字母键。
cscope功能描述:

命令 功能
:cs find s name 查找本 C 符号
:cs find s name 查找本定义
:cs find s name 查找本函数调用的函数
:cs find s name 查找调用本函数的函数
:cs find s name 查找本字符串
:cs find s name 查找本 egrep 模式
:cs find s name 查找本文件
:cs find s name 查找包含本文件的文件

3.2. 高效浏览插件

提供高效浏览源码功能。

3.2.1. taglist插件

下载源码:taglist_46.zip(显示文件中函数列表,使用ctrl+w实现左右窗口切换)
安装:

序号 操作步骤
1 将源码cp到.vim目录下,在.vim目录下解压 unzip taglist_46.zip
2 在文件 .vimrc 中配置打开关闭快捷键(此处以F12为例)
map <F12> :Tlist<CR><CR><CR>

使用示例:(F12打开关闭右侧函数列表)

3.2.2. NERDTree插件(目录树)

下载源代码:NERD_tree.zip

序号 操作步骤
1 将源码cp到.vim目录下,在.vim目录下解压 unzip NERD_tree.zip
2 在文件 .vimrc 中配置打开关闭树快捷键和默认自动打开树(此处以F3为例)
map <F3> :NERDTreeMirror<CR><CR><CR>
map <F3> :NERDTreeToggle<CR><CR><CR>
autocmd vimenter * NERDTree

使用示例:(F3打开关闭左侧目录树)

3.2.3 MiniBufExplorer插件(快速浏览与操作)

下载源代码:minibufexpl.vim
安装:将minibufexpl.vim复制到.vim/plugin目录下。
配置:

  1. 在.vimrc中设置ctrl+[hjkl]上下左右切换
let g:miniBufExplMapWindowNavVim=1
  1. 在.vimrc中设置ctrl+[箭头]上下左右切换
letg:miniBufExplMapWindowNavArrows=1

使用:

  1. Tab键进行buffer切换,enter打开光标所在buffer,d关闭光标所在buffer
  2. 使用快捷键 ctrl + [hjkl]或[箭头]进行上下左右窗口切换

示例:

3.3 快速编辑插件

下载源代码:supertab.vim
安装:将supertab.vim复制到.vim/plugin目录下。
配置:

  1. 在.vimrc中设置开启智能补全
filetype plugin indent on
  1. 在.vimrc中设置记住上次补全方式和tab补全
letg:SuperTabRetainCompletionType=2
letg:SuperTabDefaultCompletionType="<C-X><C-O>"

使用:

  1. 使用ctrl+X ctrl+字母 补全,功能描述如下
命令 功能
ctrl+X ctrl+L 整行补全
ctrl+X ctrl+N 根据当前文件里关键字补全
ctrl+X ctrl+K 根据字典补全
ctrl+X ctrl+T 根据同义词字典补全
ctrl+X ctrl+I 根据头文件里关键字补全
ctrl+X ctrl+] 根据标签补全
ctrl+X ctrl+F 补全文件名
ctrl+X ctrl+D 补全宏定义
ctrl+X ctrl+V 补全vim命令
  1. 使用快捷键 ctrl + [hjkl]或[箭头]进行上下左右窗口切换

示例:

注:若按tab键没反应,可先按ctrl+X ctrl+字母 键再使用tab键。

结语

至此就介绍完了个人觉得在vim代码开发中经常用得上的一些命令与插件,现在是不是觉得在vim中开发其实也挺方便的呢?大家有疑问或者补充的欢迎多多留言交流。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐