vim编辑器的使用
1、vim编辑器: 文本ASCII编辑器,字处理器
三种模式: 末行、输入、编辑
末行-->编辑: 按两下ESC
全屏编辑器,模式化编辑器
修改vim变量编辑/etc/vimrc或在自己家目录vim 、vimrc写入set nu
2、模式转换
- 移动到光标所在行的上一行行首
i 在当前光标所在字符的前面,转为输入模式
I 在当前光标所在行的行首,转换为输入模式
a 在当前光标所在字符的后面,转为输入模式
A 在当前光标所在行的行尾,转换为输入模式
o 在当前光标所在行的下方,新建一行,并转为输入模式
O 在当前光标所在行的上方,新建一行,并转为输入模式
J 把光标所在行的下一行合并到光标所在行
R 替换光标处的单个字符
3、在末行模式中可以执行的命令
nd :n表示数字,d表示删除,结合起来为删除第n行
n,2nd :表示删除第n行2n行中间的所有行{格式:.,$d}
:X :加密或取消加密
!ls /root :可以查看root目录下的内容
q/q! :退出/强制退出
:wq/x/wq! :末行模式下保存退出
ZZ :编辑文件内容后,在编辑模式下可直接保存退出
:e! 撤销所有操作
:sh/exit :暂时离开vim编辑或回到编辑
4、移动光标(编辑模式)
逐字符移动:
k: 上 h: 左 l: 右或(空格键) j: 下或(回车键)
nh :移动n个字符(例如按个2再按h代表向左移动两个字符)以此类推
以单词为单位移动
w :移至下一个单词的词首
e :跳至当前或下一个单词的词尾
b :跳至当前或前一个单词的词首
nw :移动n个单词(例如按个2再按w代表向右移动两个单词)以此类推
行内跳转
shift+i,0,^,home :行首
shift+a、$、end :行尾
行间跳转
G/]] :最后一行
nG :跳转至第n行
1G、gg、[[ :第一行
dG :删除当前到行尾所有行
d1G :删除当前到行首所有行
末行模式下,直接给出行号即可
5、翻屏
Ctrl+f: 向下翻一屏
Ctrl+b: 向上翻一屏
Ctrl+d: 向下翻半屏
Ctrl+u: 向上翻半屏
6、删除单个字符
x :删除光标所在处的单个字符(向后删除)
nx :删除光标所在处及向后的共n个字符
7、删除命令: d
d命令跟跳转命令组合使用;
ndw, nde, ndb
dd :删除当前光标所在行
d^ :删除当前光标所在行前的所有字符
d$ :删除当前光标所在行后的所有字符
ndd :删除包括当前光标所在行在内的n行;
末行模式下删除第n到第x行: 1,3d(删除第一行到第三行)
. :表示当前行
$ :最后一行($-1表示倒数第一行)
+n :向下的n行
dd删除后的内容可以p粘贴出来
8、粘贴命令 p
p :如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面
P :如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面
9、复制命令 y(用法同d命令)
yw :复制光标所在行单个单词
nyw :复制光标所在行后n个单词
y^ :复制光标所在行前的所有字符
y$ :复制光标所在行后的所有字符
10、修改,先删除内容,再转换为输入模式
c :用法同d命令
c$ :删除光标后一行的所有字符
11、替换: r(替换单个字符)
R :进入替换模式,输入的字符替换光标后的字符,按esc键退出替换模式
12、撤消编辑操作 u
u 撤消前一次的编辑操作
连续u命令可撤消此前的n次编辑操作
nu 直接撤消最近n次编辑操作
撤消最近一次撤消操作: Ctrl+r
13、重复前一次编辑操作
.
14、可视化模式
v :按字符移动光标选取字符
V :按行选取
15、查找
/PATTERN :从首部向文件尾部查找
?PATTERN :从尾部向文件首部查找
n :从上向下查找下一个
N :从下向上查找下一个
16、查找并替换s
在末行模式下使用s命令
单行替换: s///g
全文替换: %s///g
#准备替换的行,要结束替换的行@要替换的字符@替换成的字符@gi(g表示全局替换i表示忽略大小写)
例:、,$-1s/abc/ABC/gi: 表示从当前行开始到倒数第一行结束,忽略大小写全文替换,把abc替换为ABC
#1,$或%: 表示全文
例如: % s/old/new/g
#末行模式下,从当前行到结束,将这些行的行首加入#号(也可以指定行号)
:、,$s/^/#/
#末行模式,从当前行到结束,将这些行行首的#号替换为空
:、,$s/#//
#删除文件中行首的空白字符
:%s@^[[:space:]]\{1,\}@@g
#将文件中的以至少一个空白字符开头的行,行首加#号
%s@^[[:space:]]\{1,\}、*@#&@
#删除文件中以#开头且后面跟了至少一个空白字符的行的行首的#号和空白符
:%s@^#[[:space:]]\{1,\}@@g
将文件中enable=0一行最后的0改为1
:%s@\(enabled=\)[0-9]@\11@g
17、vim +n :打开文件,并定位在文件第n行{格式:vim +2 文件名}
vim + :打开文件,定位至最后一行{格式:vim + 文件名}
vim +/关键字 :打开文件,定位至第一次被匹配到的关键字的行的行首{格式:vim +/关键字 文件名}
18、使用vim编辑多个文件
vim FILE1 FILE2 FILE3
:next 切换至下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 切换至第一个文件
:qa 全部退出
Ctrl+w, ARROW在窗口间切换光标
19、分窗口编辑多个文件
vim -o 文件名1 文件名2 :水平分割显示
vim -O 文件名1 文件名2 :垂直分割显示
20、将另外一个文件的内容填充在当前文件中
:r /path/to/somefile
21、跟shell交互
:! 命令
22、高级话题
1、显示或取消显示行号
:set number
:set nu
:set nonu
2、显示忽略或区分字符大小写
:set ignorecase
:set ic
:set noic
3、设定自动缩进
:set autoindent
:set ai
:set noai
4、查找到的文本高亮显示或取消
:set hlsearch
:set nohlsearch
5、语法高亮
:syntax on
:syntax off
23、配置文件
全局:/etc/vimrc
个人:~/.vimrc
vim: 查看vim编辑器的帮助文档
24、行批量注释
ctrl+v 光标选中要注释的行
I 插入
# 插入的符号
esc 即可查看
25、删除选中的字符
ctrl+v 选择要删除行的字符
d 删除