5.1 vim的三种常用模式
linux系统默认没有vim命令,只有vi命令。
vim有三种模式:一般模式、编辑模式和命令模式。
- 安装vim:
# yum install -y vim-enhanced
一般模式
当我们使用命令vim编辑文件时,默认进入该文件的一般模式,在这个模式下,可以上下左右移动光标、删除某个字符、删除某行以及复制粘贴一行或者多行。
- 移动光标:
h/向左方向键 光标向左移动一个字符
l/向右方向键 光标向右移动一个字符
k/向上方向键 光标向上移动一个字符
j/向下方向键 光标向下移动一个字符
Ctrl+B 文本页面向前翻一页
Ctrl+F 文本页面向后翻一页
0/Shift+6 移动到本行行首
Shift+4 移动到本行行尾
gg 移动到首行
G 移动到尾行
nG(n是任意数字) 移动到第n行
- 删除、复制和粘贴:
x/X x表示向后删除一个字符,X表示向前删除一个字符
nx 向后删除n个字符
dd 删除/剪切光标所在的那一行
ndd 删除/剪切光标所在行之后的n行
yy 复制光标所在行
p 从光标所在行开始,向下粘贴已经复制或者粘贴的内容
P(大写) 从光标所在行开始,向上粘贴已经复制或者粘贴的内容
nyy 从光标所在行开始,向下复制n行
u 还原上一步操作
v 按v后移动光标会选中指定字符,然后可以实现复制、粘贴等操作
编辑模式
从一般模式进入编辑模式,只需按i、I、a、A、o、O、r和R中的任一个键即可。
- 进入编辑模式:
i 在当前字符前插入
I 在光标所在行的行首插入
a 在当前字符后插入
A 在光标所在行的行尾插入
o 在当前行的下一行插入新的一行
O 在当前行的上一行插入新的一行
命令模式
在一般模式下,输入:
或/
即可进入命令模式。
在该模式下,我们可以搜索某个字符或字符串,也可以实现保存、替换、退出、显示行号等操作。
- 命令模式:
/word 在光标之后查找一个字符串word,按n向后继续搜索
?word 在光标之前查找一个字符串word,按n向前继续搜索
:n1,n2s/word1/word2/g 在n1和n2行之间查找word1并替换为word2,不加g则只替换每行的第一个word1
:1,$s/word1/word2/g 将文档中所有的word1替换为word2,不加g则只替换每行的第一个word1
:w 保存文本
:q 退出文本
:w! 强制保存,在root用户下,即使文本只读也可以完成保存
:q! 强制退出,所有改动不生效
:wq 保存并退出
:set nu 显示行号
:set nonu 不显示行号
5.2 vim实践
特殊用法
:e [path to file] 打开一个文件
:saves [path to file] 另存为一个文件
:x 保存并退出,不改变mtime
:wq 保存并退出,改变mtime
:qa! 强制退出所有的正在编辑的文件,就算文件有更改
:bn 同时打开很多文件,此命令切换到下一个文件
:bp 同时打开很多文件,此命令切换到上一个文件
:X vim文件加密,回车之后提示输入密码2次(可以输入空密码,即没有加密)
:set key= 在指定加密密码的前提下,将密码设置为空,保存退出,即解密
r/R 在一般模式下按r/R进入替换模式,r会替换当前光标所在位置的字符;R会依次替换当前光标所在位置后面的字符
D/d$ 一般模式下,删除从光标所在处到行尾字符
d^ 一般模式下,删除从光标所在处到行首字符
dG 一般模式下,删除从光标所在处到文件末尾行
10,16d 一般模式下,删除10到16行的内容
:w /root/1.txt 一般模式下,把正在编辑的文件**另存为**到/root下面并保存为1.txt
:! cat /root/1.txt 不退出正在编辑的文件,在编辑模式下输入即可查看/root/1.txt的内容
:set ic 在vim查询关键字是不区分大小写(取消输入:set noic)
:e! 一般模式下输入可以把文件恢复到打开时的状态
- 小窍门:
vim +10 [filename] 即进入后光标自动跳转到第10行
bash命令 !$ 自动重复上一个命令
解决代码自动缩进造成乱码:
1.命令模式,输入 :set noai nosi
2.paste模式,输入 : set paste (输入 :set nopaste 退出)
putty、xshell连接linux,小键盘不能输入数字:
1.putty上,选项Terminal→Features里,找到Disable application keypad mode,选中即可
2.xshell上,修改session属性→终端→VT模式→初始数字键盘模式
更多参考资料: