vim常用操作

0.目录

1.综述

1.1 三种模式

vim有三种模式:编辑模式、输入模式、末行模式。不同模式下按键意义不同。打开文件后,默认处于编辑模式。

1.2 使用vim打开文件

格式意义
vim file打开文件file,光标出现在第一行行首
vim # file打开文件file,光标出现在第#行的行首
vim /pattern file打开file,光标出现在第一个被正则表达式pattern的匹配到的行的行首

2.编辑模式下常用操作

2.1 退出

各指令意义
ZZ保存退出

2.2 光标跳转与翻屏

指令意义
w跳转至下一个单词的词首
b跳转至当前或前一个单词的词首
^跳转至行首第一个非空白字符
$跳转至行尾
#G跳转至第#行
gg跳转至第一行第一个字符
ctrl + f向文件尾部翻一屏
ctrl + b向文件首部翻一屏
ctrl + d向文件尾部翻半屏
ctrl + u向文件首部翻半屏

2.2 字符删除、替换:

命令意义
x删除光标所在处的字符
#x删除光标所在处和其后的共#个字符
xp交换光标所在处的字符和其后的字符的位置1
rCHAR把光标所在处的字符替换为CHAR字符

2.3 文本删除

可结合光标跳转字符实现范围删除。光标跳转操作很多,就不一一列出了。

指令意义
d$删除光标所在处到行尾的内容
d^删除光标所在处到行首的内容
dw删除光标所在处到下个单词词首的内容
dd删除光标所在行

文本修改:
指令“c”,用法同删除(d),不同在于删除后进入输入模式。

2.4 文本粘贴

删除的内容暂不会真正删除,会存在缓冲区中,可粘贴至其他位置。

按键意义
p(小写)若缓冲区中为整行数据,则粘贴至光标所在行下方一行;若缓冲区中为非整行,则粘贴在光标后方
P(大写)若缓冲区中为整行数据,则粘贴至光标所在行上方一行;若缓冲区中为非整行,则粘贴在光标前方

2.5 文本复制

类似于删除指令“d”的用法,复制指令为“y”。光标跳转操作很多,就不一一列出了。

按键意义
y$复制光标所在处到行尾的内容
y^复制光标所在处到行首的内容
yy复制光标所在行

2.6 可视化模式

类似于windows下鼠标拖动选中文本。

按键意义
v拖动光标,选中光标经过的字符
V拖动光标,选中光标经过的行

选中后可使用上述的“d”、“y”等进行删除、复制操作。

2.7 撤销操作

按键意义
u(表示undo)撤销之前的编辑操作,默认最多50步
ctrl + r恢复撤销的内容

2.8 文本查找

类似命令less中的查找,但这里的查找支持模式匹配。

按键意义
/PATTERN由光标所在处向文件尾部查找(查找后可使用n、N顺着或逆着查找方向查找下一个,同命令“less”)
?PATTERN由光标所在处向文件首部查找

2.9 重复执行操作

按键意义
.再次执行上一步的操作

2.10 三种模式切换

2.10.1 编辑模式与输入模式切换

以下均为由编辑模式切换至输入模式,只是光标位置不同。

按键意义
i(即insert)在光标位置前输入字符
I在光标所在行的行首输入字符
a(即append)在光标位置后输入字符
A在光标所在行的行尾输入字符
o在光标所在行下方新建一行输入字符
O在光标所在行上方新建一行输入字符

输入模式切换至编辑模式,使用“Esc”键

2.10.2 编辑模式与末行模式切换

编辑模式下,使用“:”按键,进入末行模式;“Esc”键转换为编辑模式

3.末行模式下常用操作

3.1 退出

按键意义
q退出,文件未改变时可用
q!不保存修改,强制退出
w保存修改。可使用“w file”表示把当前文件保存至file文件,当前文件内容视为未修改,相当于windows中的“另存为”
wq保存退出
x保存退出

3.2 地址定界:

用于选定文本范围。

按键意义
.表示当前行
#(“#”为数字,下同)指定第#行
#,#指定行范围,左边为起始行号,右边为结束行号
#,+#指定行范围,左边为起始行号,右边为由起始行开始,向后偏移的行数
“.,#”或“.,+#”类似地,也可使用当前行至某行;或由当前行开始,向后偏移的行数
$表示最后一行
%表示全文,同“1,$”
/PATTERN/选定由光标所在处开始到文件尾部2,第一次出现模式PATTERN的行3

3.3 文本编辑

3.3.1 删除、复制、另存、读入

地址定界后跟对应操作指令,即可对选定的范围进行操作(指令同编辑模式):

指令意义
d删除选定的文本
y复制选定的文本
c修改选定的文本(即删除指定内容后进入输入模式)
w file把选定的文本另存至文件file中
r file把文件file中的内容插入至当前文件。可在“r”前指定插入位置

3.3.2 查找替换操作

格式:s/要查找的内容/替换为的内容/修饰符

说明:

  • 要查找的内容
    • 可使用模式。查找到的内容即为符合指定模式的文本。
  • 替换为的内容
    • 显然,替换为的内容不能使用模式。
    • 如果“要查找的内容”中使用了模式并使用了分组符号“()”,则替换为的内容中可引用之,比如\1、\2等。
    • 若“要查找的内容”中没有使用分组,“替换为的内容”也可直接引用其匹配到的全部文本,使用符号“&”引用。
  • 修饰符

    字符意义
    i“要查找的内容”忽略大小写
    g表示进行全局查找替换。一行中如果匹配到多个符合查找内容的文本,均替换。默认情况则是仅替换每行第一个符合查找内容的文本。

注意:“要查找的内容”中若有“/”,则需注意转义。为避免这种不便,分隔符也可使用其他字符如“@”、“#”等。

显然,查找替换操作也可用于删除,把查到的内容替换为无即可。

4.vim的多文件、多窗口功能

4.1 打开多个文件

vim可同时打开多个文件,格式:vim file1 file2…
vim为全屏幕编辑器,所以其每次显示的只能是一个文件,可在末行模式下输入指令,在打开的多个文件间切换:

按键意义
next切换至下一个文件
previous切换至上一个文件
last切换至最后一个文件
first切换至第一个文件

多个文件的退出:

按键意义
wqall保存退出所有打开的文件
qall退出所有打开的文件
wall保存所有打开的文件

4.2 多窗口显示

同时打开多个文件时,也可使用窗口分割,将它们同时显示出来:

分割方式格式
水平分割窗口“vim -o file1 file2……”
垂直分割窗口“vim -O file1 file2……”

使用“ctrl + w”进行切换,之后使用方向键,可在各分割窗口间切换。

它也可以实现对单个文件切割为多窗口显示。打开文件后,使用按键“ctrl + w + s/v”,分别为水平和垂直分割4

5.定制vim的工作特性(各指令均在末行模式输入)

5.1 显示或取消行号显示

命令意义
set number(可简写为set nu)开启显示行号
set nonumber(可简写为set nonu)关闭显示行号

5.2 自动缩进

命令意义
set ai(意思是auto indent)开启自动缩进
set noai关闭自动缩进

5.3 搜索结果高亮显示

在某文件中进行搜索操作后,搜索结果默认是高亮显示,就算关了该文件再打开,上次搜索结果也还是高亮。为避免这个麻烦,可使用命令开启或关闭高亮显示:

命令意义
set hlsearch(意思是high light search)开启搜索结果高亮
set nohlsearch关闭搜索结果高亮

5.4 语法高亮

命令意义
syntax on开启语法高亮
syntax off关闭语法高亮

5.5 搜索时忽略字符大小写

若开启,则进行文本搜索或查找替换时,涉及搜索的操作均忽略文本大小写。

命令意义
set ic(意思是ingnore case)开启忽略大小写
set noic关闭忽略大小写

5.6 vim配置文件

末行模式下的设定,仅对当前vim进程有效。若要永久有效,则需编辑配置文件,分为全局和个人。个人配置文件仅对单个用户有效。

全局配置文件:/etc/vimrc
个人配置文件:~/.vimrc(这个文件或许不存在,需自行创建)

(完)


  1. 实际就是先用“x”删除,再用“p”粘贴。组合起来用可达到交换字符的效果。
  2. 注意,是从光标所在处开始,而非从第一行开始。
  3. 貌似不大好用。比如“/h/,$d”的意思是由光标所在行开始,找到第一个含有字符h的行,该行到最后一行的内容均删除。但实际发现并没有删除光标所在的行,且光标所在的行含有字符h,仅删除了它下方的所有行。
  4. 多窗口显示单个文件,可方便文件内容的前后对照。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值