Vim常用操作记录


全局替换方法

以下的文本中old是我们要替换的字符

单字符替换

将把光标所在行old的第一次出现替换为new
/(斜杠)是该条命令不同部分之间的分隔符(当斜杠为该行的最后一个字符时,可不写)

: s/old/new/
单字府多次替换
: s/old/new/g

把当前行old的每次出现改为new,而不只是该行的第一个old。
:s命令允许替换串后面带有选项,上面语法中的g代表全局(g选项影响一行中的每个模式,不要把它与影响文件中所有行的:g命令混淆)
通过在:s命令前加上地址前缀,可以把它的范围扩展到多行。例如下面命令把50行到100行的old的每次出现都改为new:

: 50,100 s/old/new/g

下面的命令把整个文件中的old的每次出现都改为new:

: $ s/old/new/g
确认替换

使用搜索替换命令有时候会出错,而得到不想要的结果。在替换命令尾部加上c (confirm用于确认),在替换每个old前都会提示并确认:

: $ s/old/new/gc

将会出现提示replace with hehe (y/n/a/q/l/E/Y)?
y替换,n不替换,a替换所有,q放弃,l替换第一个并进入插入模式,E和Y是提示你用Ctrl+e或Ctrl+y来滚动屏幕的。

上下文相关替换:

除了直接使用一个单词(或短语)替换另一个,还有稍微复杂的全局替换语法。这些语法可以对一个模式进行搜索,一旦找到含有模式的行,就可以使用不同与模式的串进行替换,我们把这种替换叫做上下文相关替换。

:g/pattern/s/old/new/g

将会把包含pattern的行中,把所有old替换为new

第一个g表示是在文件的所有行上执行的命令,模式pattern识别要发生替换的行。在那些包含模式pattern的行上,将把old替换(s)为new,最后的g表示在该行上进行全部替换。

多行缩进

按v进入visual状态,选择多行,用>或<缩进或缩出

多行注释和取消

  1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式;
  2. 在行首使用上下键选择需要注释的多行;
  3. 按下键盘(大写)“I”键,进入插入模式;
  4. 然后输入注释符(“//”、“#”等);
  5. 最后按下“Esc”键。

取消多行注释:

  1. 进入命令行模式,按ctrl + v进入 visual block模式,按字母l横向选中列的个数,例如 // 需要选中2列

  2. 按字母j,或者k选中注释符号

  3. 按d键就可全部取消注释

移动

hjkl:左下上右
w,b:移动到下/上个字符

快速退出

shift+zz即可保存推出vim

进入插入模式

i 在当前光标处进行编辑
I,A 在行首/末插入
a 在光标后插入编辑
o,O 在当前行后/前进行编辑
cw 删除一个单词,同时进入插入模式

文档编辑

文档编辑的所有命令都符合一个规律,[操作]+[行号]+定位,三个部分完成一个动作。
比如:删除操作代码是d,重复操作代码代表操作当前行 ,则删除2行就是d2d 操作和行号也可以互换位置2dd

删除

x 删除一个字符
dw 删除一个单词 类似上文说的cw 但是删除完成之后并不会进入插入模式
d$ 删除直至行尾,d^删除至行首 $代表尾,^代表首
dG 删除到文档结尾处 d1G 删至文档首部

前缀(操作):d代表删除
中缀:行号
后缀(定位):d代表行,G代表尽头,$代表行尾,^代表行首,w代表单词

重复命令

普通模式下输入dd,删除一行,输入.(小数点)会再次删除一行,除此之外也可以重复其他任意操作

游标跳转(查)

往往用于配合/字符的操作
游标跳转位置,不过是没有去掉操作后输入的命令
nG(n shift+g) 游标移动到第n行
gg 游标移动到第一行
G(shift+g)到最后一行

复制粘贴

复制为y,后面可以接定位符
yy复制游标所在的整行(3yy表示复制3行)
y^复制到行首,或者y0。不含光标所在处的字符 y$复制到行尾。含光标所在处字符
yw 复制一个单词
y2w 复制两个单词
yG 复制至文本末
y1G 复制至文本开头

使用p粘贴
p(小写)代表粘贴至光标后(下)
P(大写)代表粘贴至光标前(上)

剪切

d操作 实际上就是剪切 可以使用ddp来进行上下行交换的操作

替换

r命令 r+<代替还字母>将游标所在的一个字母替换成其他字母
R连续替换,直到按下Esc

删除(C)

cw 删除一个单词,并进入插入模式
C删除从游标处开始到当前行尾,并进入插入模式

撤销

u撤销一次操作
U(大写)无论当前行修改了多少次,撤销当前行的所有操作
Ctrl+r 撤销撤销的操作(比如写入123 按u撤销 按crtl+u 能够恢复123的输入)

单行快速缩进

>>正行将向右缩进
<<整行向左缩进

查找

快速查找

输入 / 然后输入需要查找的字符串,按回车就会进行查找,输入n和N可以继续查找 n是查找下一个内容,N查找上一个内容
?/功能相同,只不过?是向上查,/是向下

高级查找

输入 \* 寻找游标所在处的单词
输入\#效果一样,但是是向上查

跨文件复制

现在把a.txt的三行复制到b.txt
1、用vim打开a.txt
vim a.txt
Esc进入指令模式(默认刚打开就是这个模式)
输入"a3yy
解释:引号要结合shift输入,a代表剪贴板a(26个英文字母都可以),3yy当然代表从当前行复制3行了
退出a.txt
:q
2、打开b.txt
光标移动到你想要复制的位置
进入指令模式,输入"ap
解释:引号要结合shift输入,a代表使用剪贴板a,p当然代表粘贴了

vim打开多个文件

1.vim还没有启动的时候:
在终端里输入
vim file1 file2 … filen便可以打开所有想要打开的文件
2.vim已经启动
输入
:open file
可以再打开一个文件,并且此时vim里会显示出file文件的内容。

:e …/myFile.pl

  1. vim 文档名 普通方式打开文档
  2. vim +n 文档名 打开文档后,定位第n行
  3. vim ,进入vim界面之后使用命令 :e 文档名 打开文档,此方式可以在编辑一个文档的同时打开另外一个文档
显示多个文件

:split 简写 :sp
:vsplit 简写 :vsp
显示缓存 :ls

多个文件切换

1.文件间切换
Ctrl+6—下一个文件
:bn—下一个文件
:bp—上一个文件
对于用(v)split在多个窗格中打开的文件,这种方法只会在当前窗格中切换不同的文件。
2.在窗格间切换的方法
Ctrl+w+方向键——切换到前/下/上/后一个窗格
Ctrl+w+h/j/k/l ——同上
Ctrl+ww——依次向后切换到下一个窗格中

3.多文档编辑的命令如下

:n 编辑下一个文档。
:2n 编辑下两个文档。
:N 编辑上一个文档。注意,该方法只能用于同时打开多个文档。
:e 文档名 这是在进入vim后,不离开 vim 的情形下打开其他文档。
:e# 或 Ctrl+ˆ 编辑上一个文档,用于两个文档相互交换编辑时使用。?# 代表的是编辑前一次编辑的文档
:files 或 :buffers 或 :ls 可以列出目前 缓冲区 中的所有文档。加号 + 表示 缓冲区已经被修改过了。#代表上一次编辑的文档,%是目前正在编辑中的文档
:b 文档名或编号 移至该文档。
:f 或 Ctrl+g 显示当前正在编辑的文档名称。
:f 檔名 改变编辑中的文档名。(file)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值