vi编辑器是Unix及Linux系统下标准的编辑器,下面简单地介绍一下它的配置和一小部分指令。Vi也是Linux中最基本的文本编辑器,所以要想学好Linux的同学就要好好学习vi/vim了。
下载安装 vim:yum -y install vim*
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:复制一行
在用户文件夹/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
imap
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在任意地方查看有关库函数原形
效果如下:
当光标在printf时,同时按"ctrl+w+]" 这样就能看见该函数在库函数中的定义了
如下图: