vim命令

0.概述

vim是从vi发展而来的文本编辑器,仅仅通过键盘就可以高效率地操作。Vim具有6种基本模式和5种派生模式,vim的6中基本模式为:普通模式(Normal mode)、插入模式(Insert mode)、可视模式(Visual mode)、选择模式(Select mode)、命令行模式(Command line mode)、Ex模式(Ex mode)。
终端命令
vim :打开文件
cp .:拷贝文件到当前目录
vim -r :恢复文件(断电时使用)
vim -x :创建加密文件

1.普通模式

(文字碰到\n之前为一句,有空白行相隔的为一段(文字碰到两个\n以上的是一段)。下文’行‘的意义等同于句)

:重复执行n次command

1.1移动光标

vim 可以记住每句光标的位置

字符级

hjkl:左下上右
l、h:后移、前移(单句内移动)
[space]、[backspace]:后移、前移(文档内移动)
n[space]、n[backspace]:后移、前移n个字符

单词级

e:单词结尾
ge:前一个单词结尾
b、w:上一个、下一个单词(对中文来说,一块纯中文的内容就算一个单词)

句级

0、$:本句句首、句尾(句中包括缩进)
[home]/[end]:本句句首、句尾(句中包括缩进)
^:本句句首(句中不包括缩进)
j、k:下一句、上一句(每句光标在历史位置)
+、-:下一句、上一句(每句光标在句首,句中不包括缩进)
[Enter]:下一句(每句光标在句首)
nG:移到文档的第n行 (n is a number)
n [enter]:向下移n行

段级

():段首、段尾(光标所在是段的第一个字,把空白行当成只有一句的段)
{}:段首、段尾(空白行是段的开头,空白行不为段)

页级

H、L:屏幕顶行、屏幕底行
M:屏幕中间行
Ctrl+d/ctrl+u:向下/向上移动半页
Ctrl+f/Ctrl+b:向下/向上移动一页(page down /page up)

文档级

G/%G:移到文档的最后一行
1G/gg:移到文档的第一行
[Ctrl]+o:回到上次光标位置

1.2 编辑

删除(delete)

x、X:删除、退格
nx、nX:删除n个字符、退格n个字符
dw/daw:删除一个单词
dnw:删除n个单词
D/d$:删除至行尾(从光标处起)
d0/d^:删除至行首(光标前一个字符到本行第一个字符)
dd:删除一行
2dd/dj:删除两行
ndd:向下删除n行

复制(yank)

yw:复制一个单词
y$:复制到行尾
y0:复制到行首
y/Y/yy:复制当前行
nyy:向下复制n行
yG:复制到最后一行
y1G:复制到第一行

修改(change)

r:字符替换为char
cc:删除整行,并进入编辑模式
C/ce/cw:删除至词尾,并进入编辑模式
cw:删除到第n个单词,并进入编辑模式
c0:删除至行首,并进入编辑模式(包括缩进)
c$:删除至行尾,并进入编辑模式

对选中内容编辑

~:大小写互换
u:变成小写
U:变成大写
>>:增加首行缩进
<<:减少首行缩进

其他

p、P:句后粘贴、句前粘贴
J:合并两行(去掉/n)
ddp:交换上下行
u:撤销(undo)
U:撤销所在行所有操作
[Ctrl]+r:重做
.:重复动作
ggVG:格式化
ZZ:保存退出
ZQ:不保存退出

1.3 查找

/word:光标之后查找word
?word:光标之前查找word
n:重复查找
N:反向重复查找
# / *:向上/向下查找光标所在单词(重复按下一个)
F/f:向前/向后搜索,跳到第一个匹配位置
f:句内移动到第n 次出现char的地方
\*:查找所在的单词

ctrl]+w+▲/▼:切换到上/下窗口

2.输入模式

i:insert,插入模式,光标之前插入
I:行首插入
a:append,附加模式,光标之后插入
A:行末插入
R:replace,替换模式,替换光标字符
o:在下一行插入
O:在上一行插入
[Esc]:退出到一般模式

3.命令模式

底线命令模式,执行命令(:键),搜索(/和?键)或者过滤命令(!键)

文件操作

:e :打开文档(vim没有加载文档的时候)
:f:显示正在编辑的文件名
:f :改变文件名
:w 写入档案中
:q 离开vim
:q! 强制不储存离开
:x/:wq 储存后离开
:wq! 强制储存离开
:w :另存为(saveas
:n1,n2 w :n1-n2行写入
:r :在下一行读入
:ls:列出文件
:ewcover :恢复文件

替换(substitude)
:s/old/new           将光标所在行出现的第一个old替换为new
:s/old/new/g      将光标所在行出现的所有old替换为new            
:s/old/new/gc      同上,替换之前提示用户确认是否替换      
:n,ms/old/new/g  在n和m指定的行之间进行检查和替换    
:%s/old/new/g   针对整个文本进行替换
改变编辑器默认选项

格式::set / :set no
:set nu:显示行号
:set nonu:取消显示行号
:set ic:忽略大小写(ignore case)
:set显示被修改的参数
:set ruler:右下角显示状态栏
:set shiftwidth=10:设置缩进为10(可简写为sw)

调整文本位置

:ce 本行居中
:ri 本行靠右
:le 本行靠左

一个终端中多文件编辑

vim \ \:打开多文件

:files:查看打开的文件
:n:切换到下一个文件
:N:切换到上一个文件
:e#:回到上一个文件

视窗操作

一个界面内打开多个窗口
:new:打开一个新的视窗
:sp :水平分屏(多使用:sp,多增加窗口 )
:vsp :垂直分屏(:vsp)
:q:退出切割
[Ctrl]+ww :切换一个文件的窗口
[Ctrl]+h、j、k、l:移动到视窗
[Ctrl]+H、J、K、L:移动视窗
[Ctrl]+w+s/v:水平/垂直分屏
[Ctrl]+w+o:只剩当前视窗
[Ctrl]+w+ +/-:增加/减小视窗高度
[Ctrl]+w+q:结束分割出来的视窗。

其他

:! :暂时离开vim到终端执行command
:help:打开帮助文件
[F1]:打开帮助文档
:h :打开名为shiftwidth的帮助文件
:ver:显示版本和参数

4 可视模式

选取文本,高亮文本

进入

v :字符可视化模式,文本选择以字符为单位。
V :行可视化模式,文本选择以行为单位。
Ctrl+v: 块可视化模式,选择一个矩形内的文本。

参考文献:
https://www.shiyanlou.com/courses/2/learning/?id=16
https://www.runoob.com/linux/linux-vim.html
https://www.cnblogs.com/yhjoker/p/8405845.html

你可能感兴趣的:(linux)