VI编辑器学习

1、光标移动

h,j,k,l 左,上,下,右   #10j“表示向下移动10行

CTRL-G“命令,可以查看光标在文件中的位置

0 跳至行首,不管有无缩进,就是跳到第0个字符
^ 跳至行首的第一个字符

5gg/5G 调至第5行

5l   向后跳5列

u 撤销

~ 切换大小写,当前字符

> 将当前行右移一个单位;如果想要多个缩进,n+>
< 将当前行左移一个单位(一个tab符)
== 自动缩进当前行

2、查找替换

/pattern 向后搜索字符串pattern
?pattern 向前搜索字符串pattern

n 下一个匹配(如果是/搜索,则是向下的下一个,?搜索则是向上的下一个)
N 上一个匹配(同上)

:%s/old/new/g 搜索整个文件,将所有的old替换为new    #类比sed -i s/old/new/g file
:%s/old/new/gc 搜索整个文件,将所有的old替换为new,每一个都要你确认是否替换

3、复制粘贴删除插入,行操作,列操作

选择模式:

v                                     字符选择,会将光标经过癿地方反白选择!
V(大写)                          行选择,会将光标经过癿行反白选择!(常用,配合上下左右键,进行区域选择,很爽!!!)
[Ctrl]+v                           区块选择,可以用长方形癿方式选择资料   CTRL+v 将编辑器切换至"可视模式"(visual mode)

删除d 复制y 粘贴p

(1)在某一列插入相同的数值

首先ctrl+v选中一列,然后操作组合键SHIFT+i(SHIFT+i插入到列的左边,SHIFT+a插入到列的右方),这时候光标会回到选定起始点,当时可输入你要插入的内容。输入完成后按ESC键,按ESC键退出“可视模式”并完成插入操作(也就是两次ESC键)。

(2)批量替换列块

CTRL+v选择完成后,接着按c键,然后输入你要替换后的文字,最后ESC,ESC。完成列替换操作

(3)对字符操作
x, X                 在一行字当中,x 为向后删除一个字符 (相当亍 [del] 按键),X 为向前删除一个字符(相当亍 [backspace] 亦即是退格键) (常用)
nx                   n 为数字,连续向后删除 n 个字符。丼例来说,我要连续删除 10 个字符, 『10x』。
d$                   删除游标所在处,到该行行尾的所有字符
d0                   删除游标所在处 ,到该行行首的所有字符

4、自动排版

在粘贴了一些代码之后,vim变得比较乱,只要执行gg=G就能搞定

5、vimrc设置

#设置一个tab占多少空格

变量名           缩写        含义 
(no)smartindent si          基于autoindent的一些改进 
tabstop=X       ts          编辑时一个TAB字符占多少个空格的位置。 
shiftwidth=X    sw          使用每层缩进的空格数。 
(no)expandtab   (no)et      是否将输入的TAB自动展开成空格。开启后要输入TAB,需要Ctrl-V<TAB> 
softtabstop=X   sts         方便在开启了et后使用退格(backspace)键,每次退格将删除X个空格 
set smartindent  
set tabstop=4  
set shiftwidth=4  
set expandtab  
set softtabstop=4  

放在 ~/.vimrc中仅对自己生效,放在/etc/vimrc中对所有用户生效
6,自动补全
ctrl+p 向上查找
ctrl+n 向下查找
原文地址:https://www.cnblogs.com/jszd/p/11186512.html