vim:全屏、模式化编辑器
vim模式:
编辑模式(命令模式)
输入模式
末行模式
模式转换:
编辑——>输入
i:在当前光标定位的字符前面,转为输入模式
a:在当前光标定位的字符后面,转为输入模式
o:在当前光标所在行的下面新建一行,转为输入模式
I:在当前光标定位的行首,转为输入模式
A:在当前光标定位的行尾,转为输入模式
O:在当前光标所在行的上面新建一行,转为输入模式
输入——>编辑:
ESC
编辑——>末行:
:
末行——>编辑:
ESC
vim命令使用:
1、打开文件:
vim +12 file ——>直接打开定位到文件的第12行
vim + file ——>直接打开定位到文件的尾部
vim +/PATTERN file ——>打开文件,定位到第一次被PATTERN匹配到的行的行首
2、关闭文件:
w:保存
q:退出
wq:保存并退出
q!:不保存退出
w!:强行保存
:wq ——> :x
编辑模式下关闭文件
ZZ:保存并推出 ——> shift+z,
3、移动光标(编辑模式):
逐字符移动:
h:向左
l:向右
j:向下
k:向上
#h:移动#个字符...
...
以单词移动:
w:跳到下一个单词的词首
e:跳到当前或下一个单词的词尾
b:跳到当前或前一个单词的词首
#w:跳到下#个单词的词首
...
行内跳转:
0:跳到绝对行首
^:跳到行首的第一个非空白字符
$:绝对行尾
行间跳转:
#G:跳到第#行
G:跳转到最后一行
末行模式下,直接给出行号即可
4、翻屏跳转:
Ctrl+f:向下翻一屏
Ctrl+b:向上翻一屏
Ctrl+d:向下翻半屏
Ctrl+u:向上翻半屏
5、删除单个字符
x:删除光标所在处的单个字符
#x:删除光标所在处及向后的共#个字符
6、删除命令
d:该命令需跟跳转命令组合使用
example:d$
#d跳转符:删除#个跳转符
dd:删除当前光标所在行
#dd:删除包括当前光标所在行的#行
末行模式下:
.:表示当前行
$:表示最后一行
+#:表示向下#行
$-1:表示倒数第二行
example:.,$-1s/he/HE/g——>从当前行到倒数第二行将he全局替换为HE
7、粘贴命令
p:如果删除或复制为整行内容,则粘贴到光标所在行的下方;如果复制或删除的内容为非整行,则粘贴到光标所在字符的后面
P:如果删除或复制为整行内容,则粘贴到光标所在行的上方;如果复制或删除的内容为非整行,则粘贴到光标所在字符的前面
8、复制命令
y用法同d命令
9、修改:先删除内容,再转换为输入模式
c:用法同d命令
10、替换:
r:常用于替换单个字符(光标定位rx)
R:替换模式
11、撤销编辑:
u:撤销前一次编辑操作
#u:直接撤销最近#次操作
Ctrl+r:撤销最近一次撤销操作
12、重复前一次编辑操作
.
13、可视化模式(选取文本)
v:按字符选取
V:按矩形选取
14、查找
/PATTERN
?PATTERN
n:查找下一个
N:查找上一个
15、查找并替换
在末行模式下使用s命令
:ADDR1,ADDR2s/PATTERN/string/gi
1,$
%:表示全文
%s:全文搜索
16、编辑多个文件
vim file1 file2 ...
:next:切换后一个文件
:prev:切换前一个文件
:last:切换到最后一个文件
:first:切换到第一个文件
:qa:全部退出
17、分屏显示
Ctrl+w,s:水平拆分窗口
Ctrl+w,s,上下箭头:切换窗口
Ctrl+w,v:垂直拆分窗口
Ctrl+w,s,左右箭头:切换窗口
:qa:关闭所有窗口
18、分窗口编辑多个文件
vim -o:水平分割编辑
vim -O:垂直分割编辑
19、将当前文件中的部分内容另存为另一个文件
末行模式下使用w命令
:w 路径
:ADDR1,ADD2w /home
20、将另一个文件中的内容填充在当前文件中
:r /home/file
21、跟shell交互
:! COMMAND
22、高级话题
显示或取消显示行号
:set nu
:set nonu
忽略或区分字符大小写
:set ignorecase
:set ic
:set noic
:set noignorecase
设定自动缩进
:set autoindent
:set ai
:set noai
查找到的文本高亮显示或取消
:set hlsearch
:set nohlsearch
语法高亮
:syntax on
:syntax off
23、配置文件
/etc/vimrc
~/.vimrc