Centos下vim、ctags的配置及基本用法

vi/vim 基本使用方法 

     vi编辑器是Unix及Linux系统下标准的编辑器,下面简单地介绍一下它的配置和一小部分指令。Vi也是Linux中最基本的文本编辑器,所以要想学好Linux的同学就要好好学习vi/vim了。

下载安装 vim:yum -y install vim*


wKioL1dCiMSQ_sRkAAAKBjJXmCI470.png


Vim有三种模式:一般模式,编辑模式,命令模式,下面我就简单介绍一下常用的vim的指令。

set nu   #行号
syntax on   #高亮
x  删除后面的字符 
X  删除前一个字符  
3x 删除3个字符就是
dd:删除一行   
D 删除到行尾 
u 撤销上一次操作      
U 撤销当前行的所有修改  
ctrl+r      对撤消的撤消
Ctrl+o      临时变成命令模式(一次而已)
10,20y      回车即可,相应的复制   
10,20d      回车即可,相应的删除
10,20 m 30  把10行到20行的内容,剪切到30行之后
10,20 co 30 把10行到20行的内容,复制到30行之后
b、3b       向前\后移动几个单词,标点也算一个单词
w、3w       相应的大写状态为不含标点,即只把空格和换行符作为单词间隔符。
$           移动到行尾  
3$          移动到3行后的行尾
^           移动到行首,0也是
+           移到下一行的行首
-           移到上一行的行首
33G         跳转到33行   此时按``可以返回到原来行
30%         跳转到文件的30%处
set number  设置显示行号
set nonumber 关闭显示
set nohlsearch  取消高亮
10,$ w test2.cpp    取行10到最后一行内容,保存到test2.cpp
r class/User.hpp    读取文件中的内容,插入到当前行的后面
dw:                 删除一个单词(光标后部分)
d4w:               删除4个单词  
d$:                 删除当前光标到行尾    
d^:                删除当前光标至行首       
d                   换成c效果是一样的,只是操作完会变成insert模式   
dnw:               删除N个单词   
dnj:                向下删除n行      
dnk:                向上删除n行 
X:                 删除左边的字符,相当于<-键,x删除当前字符  
P: 粘贴至光标前   p:粘贴至光标后  3P:粘贴3次      
yy:复制一行  

一、vim的配置

在用户文件夹/home/user(其中user为用户名)下建立自己的配置文件。使用 $cd ~ 切换到用户文件夹,$touch .vimrc文件,在其中

加自己风格的配置

vim中文帮助文档tar包下载地址:http://sourceforge.net/projects/vimcdoc/files/vimcdoc/

解压后其中有个doc文件夹, 将其中的内容全部复制到~/.vimrc

1.在~/.vimrc中添入以下代码

" This line should not be removed as it ensures that various options are  
" properly set to work with the Vim-related packages available in Debian.  
 debian.vim  
  
" Uncomment the next line to make Vim more Vi-compatible  
" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous  
" options, so any other options should be set AFTER setting 'compatible'.  
set nocompatible  
  
" Vim5 and later versions support syntax highlighting. Uncommenting the  
" following enables syntax highlighting by default.  
if has("syntax")  
  syntax on            " 语法高亮  
endif  
colorscheme ron        " elflord ron peachpuff default 设置配色方案,vim自带的配色方案保存在/usr/share/vim/vim72/colors目录下  
  
" detect file type  
filetype on  
filetype plugin on  
  
" If using a dark background within the editing area and syntax highlighting  
" turn on this option as well  
set background=dark  
  
" Uncomment the following to have Vim jump to the last position when  
" reopening a file  
if has("autocmd")  
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif  
  "have Vim load indentation rules and plugins according to the detected filetype  
  filetype plugin indent on  
endif  
  
" The following are commented out as they cause vim to behave a lot  
" differently from regular Vi. They are highly recommended though.  
  
"set ignorecase        " 搜索模式里忽略大小写  
"set smartcase        " 如果搜索模式包含大写字符,不使用 'ignorecase' 选项。只有在输入搜索模式并且打开 'ignorecase' 选项时才会使用。  
set autowrite        " 自动把内容写回文件: 如果文件被修改过,在每个 :next、:rewind、:last、:first、:previous、:stop、:suspend、:tag、:!、:make、CTRL-] 和 CTRL-^命令时进行;用 :buffer、CTRL-O、CTRL-I、'{A-Z0-9} 或 `{A-Z0-9} 命令转到别的文件时亦然。  
set autoindent        " 设置自动对齐(缩进):即每行的缩进值与上一行相等;使用 noautoindent 取消设置  
"set smartindent        " 智能对齐方式  
set tabstop=4        " 设置制表符(tab键)的宽度  
set softtabstop=4     " 设置软制表符的宽度      
set shiftwidth=4    " (自动) 缩进使用的4个空格  
set cindent            " 使用 C/C++ 语言的自动缩进方式  
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s     "设置C/C++语言的具体缩进方式  
"set backspace=2    " 设置退格键可用  
set showmatch        " 设置匹配模式,显示匹配的括号  
set linebreak        " 整词换行  
set whichwrap=b,s,<,>,[,] " 光标从行首和行末时可以跳到另一行去  
"set hidden " Hide buffers when they are abandoned  
set mouse=a            " Enable mouse usage (all modes)    "使用鼠标  
set number            " Enable line number    "显示行号  
"set previewwindow    " 标识预览窗口  
set history=50        " set command history to 50    "历史记录50条  
  
  
"--状态行设置--  
set laststatus=2 " 总显示最后一个窗口的状态行;设为1则窗口数多于一个的时候显示最后一个窗口的状态行;0不显示最后一个窗口的状态行  
set ruler            " 标尺,用于显示光标位置的行号和列号,逗号分隔。每个窗口都有自己的标尺。如果窗口有状态行,标尺在那里显示。否则,它显示在屏幕的最后一行上。  
  
"--命令行设置--  
set showcmd            " 命令行显示输入的命令  
set showmode        " 命令行显示vim当前模式  
  
"--find setting--  
set incsearch        " 输入字符串就显示匹配点  
set hlsearch   

注:配置文件中,以单个双引号开头的文字为注释。保存文件之后,启动Vim。此时,Vim已经显示语法高亮效果了。

2.解压并安装 Ctags

网址:http://prdownloads.sourceforge.net/ctags/ctags-5.8.tar.gz下载ctags安装包

使用如下命令进行解压并安装ctags

tar zxvf ctags-5.8.tar.gz

cd ctags-5.8
./configure && make && make install

建立源码索引,比如需要查看库函数源代码,而这些代码放在/usr目录下
那么在终端进入到该目录后,输入命令ctags -R ,你会发现多了一个tags文件,这个就是索引文件

3.向vim注册索引文件tags的路径
$ vi ~/.vimrc
在打开文件的最后添加如下内容(当然,具体路径根据你自己的情况)

"--ctags setting--
" 按下F5重新生成tag文件,并更新taglist
map :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . :TlistUpdate
imap :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q . :TlistUpdate
set tags=tags
set tags+=./tags "add current directory's generated tags file
set tags+=/usr/tags "add new tags file(刚刚生成tags的路径,在ctags -R 生成tags文件后,不要将tags移动到别的目录,否则ctrl+]时,会提示找不到源码文件)
set tags+=./tags表示在当前工作目录下搜索tags文件
set tags+=/usr/tags表示在搜寻tags文件的时候,也要搜寻~/usr/文件夹下的tags文件。

然后保存并退出vi。这样,你就可以用vim在任意地方查看有关库函数原形

效果如下:

Centos下vim、ctags的配置及基本用法_第1张图片

当光标在printf时,同时按"ctrl+w+]" 这样就能看见该函数在库函数中的定义了

如下图:

Centos下vim、ctags的配置及基本用法_第2张图片




你可能感兴趣的:(操作系统)