Linux vim安装与IDE使用详解
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目录下。
配置:
- 在.vimrc中设置ctrl+[hjkl]上下左右切换
let g:miniBufExplMapWindowNavVim=1
- 在.vimrc中设置ctrl+[箭头]上下左右切换
letg:miniBufExplMapWindowNavArrows=1
使用:
- Tab键进行buffer切换,enter打开光标所在buffer,d关闭光标所在buffer
- 使用快捷键 ctrl + [hjkl]或[箭头]进行上下左右窗口切换
示例:
3.3 快速编辑插件
下载源代码:supertab.vim
安装:将supertab.vim复制到.vim/plugin目录下。
配置:
- 在.vimrc中设置开启智能补全
filetype plugin indent on
- 在.vimrc中设置记住上次补全方式和tab补全
letg:SuperTabRetainCompletionType=2 letg:SuperTabDefaultCompletionType="<C-X><C-O>"
使用:
- 使用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命令 |
- 使用快捷键 ctrl + [hjkl]或[箭头]进行上下左右窗口切换
示例:
注:若按tab键没反应,可先按ctrl+X ctrl+字母 键再使用tab键。
结语
至此就介绍完了个人觉得在vim代码开发中经常用得上的一些命令与插件,现在是不是觉得在vim中开发其实也挺方便的呢?大家有疑问或者补充的欢迎多多留言交流。
- rpm命令|rpm安装|rpm卸载|rpm使用|rpm删除 Linux 中 RPM 命令参数使用详解
- [转]Linux系统中rar、unrar命令安装和使用详解
- 打造Linux下属于自己的强大IDE:VIM配置使用手册
- vi/vim使用进阶: 在VIM中使用GDB 把VIM打造成Linux下程序开发的IDE利器
- linux下使用yum安装svn详解
- 今天在Mac机器上使用了Flex Builder编辑了一个源代码文件,保存后使用vim命令去打开时发现系统自动在每一行的结尾添加了^M符号,其实^M在Linux/Unix中是非常常见的,也就是我们在Win中见过的/r回车符号。由于编辑软件的编码问题,某些IDE的编辑器在编辑完文件之后会自动加上这个^M符号。看起来对我们的源代码没有任何影响,其实并不然,当我们把源代码文件Check In到svn之类
- Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)
- Linux学习(四)----vim 使用详解(常用的)
- linux:TeamViewer安装使用详解
- VIM 下合并使用命令行插件conque安装及使用办法详解
- linux:vim NERDTree 安装和使用
- linux下ssh安装与scp命令使用详解
- Linux支持中文及安装VIM IDE
- TVD$XTAT在linux下安装使用详解
- [置顶] 【Eclipse+PyDev】使用Python的IDE安装及配置详解
- Linux下安装使用C/C++IDE开发工具 anjuta
- Linux系统中rar、unrar命令安装和使用详解
- Linux 环境使用vim搭建php IDE
- linux下使用yum安装mysql详解
- Linux pip安装使用详解