LInux中VIM的使用和定制

一.VIM的使用

1.Uinux系统中编辑器的演变

不同版本的linux中带的编辑器不同,例如有ed/sed、ex、Vi/Vim,现在最常用的是Vim

Vi实际上是minimal vim

Vim是加强版vimvim-enhanced)可以识别语法,有颜色,但文件不在其原目录下时有时可能无法识别语法。

 

2.vim的三种模式

命令模式、插入模式、命令行模式

进入vim就是命令模式,进入命令行模式按“:”

由命令模式进入插入模式按任意插入模式快捷键

进入或退出命令行模式都是按ESC

 

3.打开文件

vim file 打开文档

vim -o /etc/paswd passwd 上下打开两个文档

vim -O /etc/paswd passwd 左右打开两个文档

Ctrl+w然后按上下左右来切换

vim -p /etc/paswd passwd 分页打开两个文档

Ctrl+Page Up/Page Down来切换

 

4.命令模式快捷键

PS:在执行以下命令前加数字n,会执行n此操作,如5yy,即复制5

①插入(进入插入模式)

i:在当前字符的左边插入

I:在当前字符首行插入

a:在当前字符的右边插入

A:在当前行尾插入

o:在当前行下面插入一个新行 //open

O:在当前行上面插入一个新行

②复制/粘贴/删除/替换

s:删除当前字符,并进入插入模式i

S:删除当前行,并进入插入模式i(无法删除空行,但可以用dd删除)

x:删除当前字符

dd:剪切/删除当前行

dw:剪切/删除当前词(必须以Ctrl+左右键的形式移动到该词)

D:删除当前字符至行尾的所有字符

yy:复制当前行

yw:复制一个单词

p:粘贴(粘贴到当前字符右侧,如果是一行则粘贴到下一行)

r:替换当前字符 //replace

③撤销/定位

u:撤销一步 //undo

Ctrl+r:取消撤销 //redo

G:到文档末尾

3G:到第三行

L:到屏幕末尾

3L:到屏幕末尾倒数第3

④剪切板的使用

a3yy:复制三行到剪贴板a(按“,再按a3yy)

ap:从剪贴板a复制

⑤块操作

先按v,然后通过左右间选择块长度,即可进行复制剪切

 

 

5.命令行模式快捷键

①保存/退出

e!:不保存(撤销编辑)

e! /etc/passwd:不保存并编辑下一个文件

w:保存

w a.file:另存为

x:保存

q:退出

②追加/替换

!ShellCommand:执行shell命令

r /etc/passwd:将另一个文件读入到当前位置

r !ls:将当前目录下的文件名读入到当前位置

1,5 w >> aaa.file1-5行写到文件aaa末尾

1,$ s/sbin\/root/czd/g:将1-尾行的sbin/root替换为czd

  \为转义字符,/g表示不询问(c表示询问,默认不询问)$表示尾行,%为全部(1,$=%),           s表示替换

③显示

/string 查找

set  nu:显示行号

set  nonu:不显示行号

split  /etc/passwd 上下分屏打开另一个文件

vsplit /etc/paswd 左右分屏打开另一个文件

 

二.自定义vim

1.配置vimrc文件

添加vimrc文件,如果是给自己自定义vim则在自己的主目录下创建,给所有用户定制则在/etc/下创建此文件,添加自己的习惯,如:

set nu //显示行数

PS:凡是*rc的文件都是定制脚本

 2.别名设置

为了输入vi时调用的是加强版vim,可进行如下别名配置:

[root@localhost desktop]# alias //查看指令的别名

[root@localhost desktop]# alias vi=vim //设置别名



三.ctags

ctags(Generate tag files for source code)是vim下方便代码阅读的工具。尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM。并且VIM中已经默认安装了Ctags,它可以帮助程序员很容易地浏览源代码。ctags 最先是用来生成C代码的tags文件,后来扩展成可以生成各类语言的tags, 有些语言也有专有的tags生成工具(比如java的jtags, python的 ptags).

1安装ctags并创建查找目录

①安装

rpm -qa|grep ctags 查看是否安装了ctags

如果没有安装下载源码,然后进入源代码根目录执行./configure,然后执行make,编译成功后执行make install,嫌麻烦的话也可以下载别人编译好的rpm包

②创建查找目录

ctags -R . 在当前目录执行ctags

“-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vi时,会自动载入此tags文件。Tags文件中包括这些对象的列表:用#define定义的宏枚举型变量的值函数的定义、原型和声明名字空间(namespace)类型定义(typedefs)变量(包括定义和声明)类(class)、结构(struct)、枚举类型(enum)和联合(union)类、结构和联合中成员变量或函数VIM用这个“tags”文件来定位上面这些做了标记的对象。

当项目结束,编译完成时可手动删除tags文件

搜索只限于当前目录及其子目录,如果想在其他目录也可以搜索,可以添加“settags=路径”命令


2.ctags的使用

shell中的查找命令

vi -t main 打开定义main(函数变量或其他)的文件,并将光标定位这一行

ctags -t get-options() //查找函数get-options

vim中的查找命令

Ctrl+] :查找一个函数,并调到这个函数或变量定义的源文件中 //需将光标置于此函数

tselect get-options / /查找get-options

③查看搜索结果

:tn (同一文件中)下一处定义

:tp (同一文件中)上一处定义

:ts查看搜索结果(显示出现所查找关键字的文件),按对应数字进入各文件

ctrl+t 按原路返回


你可能感兴趣的:(Linux)