vim相关

粘贴复制缩进错乱:

:set paste

 进入粘贴模式,就ok了

具体操作,记下常用的,备用:转载自

表 1. 启动及关闭 Vi/Vim 的基本命令
功能命令说明
启动 vi 打开 Vi/Vim
vi <file> 打开 Vi/Vim 并加载文件 <file>
 
退出 ZQ 无条件退出
:q! 无条件退出
ZZ 存盘并退出
:wq 存盘并退出
 
保存部分文件 :m,nw <file> 将 m 行到 n 行部分的内容保存到文件 <file> 中
:m,nw >> <file> 将 m 行到 n 行的内容添加到文件 <file> 的末尾

定位:

 操作单位命令说明
字符 h 左移一字符
l 右移一字符
 
单词 w/W 移动到下一单词的开头
b/B 移动到上一单词的开头
e/E 移动到光标所在单词的末尾
W、B、E 命令操作的单词是以空白字符(空格、Tab)分隔的字串,比如字符串“str1-str2 str3-str4”,对 W、B、E 命令来说是两个单词,而对 w、b、e 命令来说则是四个单词。
j 下移一行
k 上移一行
0 移到当前行开头
^ 移到当前行的第一个非空字符
$ 移到当前行末尾
:n 移动到第 n 行
0 为数字零(zero)
句子 ) 移动到当前句子的末尾
( 移动到当前句子的开头
 
段落 } 移动当前段落的末尾
{ 移到当前段落的开头
 
H 移动到屏幕的第一行
M 移动到屏幕的中间一行
L 移动到屏幕的最后一行
 
Ctrl-f 向前滚动一页
Ctrl-b 向后滚动一页
Ctrl-u 向前滚动半页
Ctrl-d 向后滚动半页
 
文件 G 移动到文件末尾
gg 移动到文件开头
:0 移动到文件第一行
:$ 移动到文件最后一行
0 为数字零(zero)
括号 % 跳转到与之匹配的括号处

文本编辑

  

表 3. 文本编辑的基本命令
操作单位命令说明
字符 x 删除光标位置的字符
c 更改当前字符并进入插入模式
s 替换光标位置的字符并进入插入模式
r 替换光标位置的字符但不进入插入模式
i 在当前位置的字符之前进入插入模式
a 在当前位置的字符之后进入插入模式
 
单词 cw/cW 删除当前单词从光标开始的部分并进入插入模式
cb/cB 删除当前单词从光标所在位置至单词开始的部分并进入插入模式
dw/dW 删除当前单词从光标开始的部分但不进入插入模式
db/dB 删除当前单词从光标所在位置至单词开始的部分但不进入插入模式
cW、cB、dW、dB 命令操作的单词是以空白字符(空格、Tab)分隔的字串,比如字符串“str1-str2 str3-str4”,对 cW,cB,dW,dB 命令来说是两个单词,而对 cw、cb、dw、db 命令来说则是四个单词。
dd 删除当前行
d0 删除从当前光标开始到行末的内容
d$ 删除从当前光标开始到行末的内容
I 在当前行的行首进入插入模式
A 在当前行的行尾进入插入模式
o 在当前行下方另起一行进入插入模式
O 在当前行上方另起一行进入插入模式
  • d0 命令中的 0 为数字零
  • o 为小写英文字母 [əu]
  • O 为大写英文字母 [əu]
句子 d) 删除当前句子从光标位置开始到句末的内容
d( 删除当前句子从光标位置开始到句首的内容
 
段落 d} 删除当前段落从光标位置开始到段末的内容
d{ 删除当前段落从光标位置开始到段首的内容
 
表 4. 文本编辑的高效命令
功能命令说明
复制与粘贴 yw 复制当前单词从光标开始的部分
yy 复制光标所在行的所有字符
p 将最后一个删除或复制文本放在当前字符
P 将最后一个删除或复制文本放在当前字符之前
配合操作数使用可快速拷贝编辑文本
撤消与重做 u 撤消更改
Ctrl-R 重做更改
非常实用的一个命令
重复操作 . 重复上次操作
  • . 为小数点(dot)
  • 配合光标移动命令使用;
  • 不用重复输入先前的复杂命令即可在不同的地方做同样的操作,有点象 MS Office 的格式刷
交换相邻字符或行 xp 交换光标位置的字符和它右边的字符
ddp 交换光标位置的行和它的下一行
 
大小写转换 ~ 将光标下的字母大小写反向转换
guw 将光标所在的单词变为小写
guw 将光标所在的单词变为小写
gUw 将光标所在的单词变为大写
guu 光标所在的行所有字符变为小写
gUU 光标所在的行所有字符变为大写
g~~ 光标所在的行所有字符大小写反向转换
 
取得外部输入 : r!<cmd> 将命令 <cmd> 的输出结果插入到当前光标所在位置
:r <file> 将文件 <file> 读入到当前光标所在位置
 
排序 :1,$!sort 将文件内的所有内容排序  
加入行号 :%!nl 在所有非空行前加入行号
:%!nl -ba 在所有行前加入行号
利用 Linux 命令 nl 来实现的
缩进 >> 右缩进(可配合操作数使用)
<< 左缩进(可配合操作数使用)
配合操作数使用,在编辑源码的时候非常有用。
自动补全 Ctrl-p 自动补全 在编写代码的时候非常有用。比如,输入 prin 后按 Ctrl-p 将自动帮你输入 printf 函数名后面的部分,同时将相关备选函数在底下列出来。
显示当前编辑文件名 Ctrl-g 显示当前编辑文件名及行数 可以在不退出 Vi/Vim 情况下了解当前编辑文件的信息
显示字符内码 ga 显示光标所在字符的内码(包括十进制码,十六进制码以及八进制码) 显示的内码为当前 encoding 下的内码

文本搜索与替换

   Vi/Vim 用于文本搜索的主要有下面的三个基本命令:

表 5. 文本搜索的基本命令
功能命令说明
搜索 / 在文件中向前搜索
? 在文件中向后搜索
  • 可使用正则表达式
  • 可配合操作数使用,比如 3/str 向前搜索字串 str 并将光标移到第三个找到的串
搜索下一个 n 搜索下一个
N 反向搜索下一个
  • 可使用正则表达式
  • 可配合操作数使用,比如命令 3N 反向搜索第三个匹配的字符串
表 6. 文本搜索的高效命令
功能命令说明
快速搜索 * 在文件中向前搜索当前光标所在的单词
# 在文件中向后搜索当前光标所在的单词
非常快捷的搜索命令
显示搜索命令历史 q/ 显示搜索命令历史的窗口
q? 显示搜索命令历史的窗口
可以选择重用以前用过的搜索查找命令
查找帮助 Shift-k 查找光标所在命令或函数的 man 帮助
  • 可以在不退出 Vi/Vim 情况下快速查询命令或函数的使用方法;
  • 按 q 键退出 man 帮助
表 8. Vi/Vim 设置命令
功能命令说明
查看设置的当前值 :set all 查看 vi 或 Vim 中设置的所有选项的当前值
:set <option>? 查看特定选项 <option> 的当前值
 
设置行号显示与否 :set number 显示行号
:set no number 取消行号显示
命令的简写形式:
:set nu
:set no nu
设置自动缩进 :set autoindent 设置自动缩进
:set no autoindent 取消自动缩进设置
命令的简写形式:
:set ai
:set no ai
设置缩进宽度 :set shiftwidth=4 设置缩进宽度为 4 命令的简写形式:
:set sw=4
设置大小写忽略与否 :set ignorecase 设置忽略大小
:set no ignorecase 取消忽略大小设置
命令的简写形式:
:set ic
:set no ic
设置不可见字符显示与否 :set list 显示不可见字符
:set nolist 取消显示不可见字符设置
在显示不可见字符的情况下,TAB 键显示为 ^I,而 $ 显示在每行的结尾。
原文地址:https://www.cnblogs.com/maggie94/p/6838149.html