vim 文本编辑器快速上手

快速上手操作手册

vim基本操作

打开文件进入vi后,为命令模式「command mode」;可以编辑文本内容,为插入模式「insert mode」;执行内/外部的命令行,为底行模式「last line mode」。

命令模式:在其他模式下按Esc键,返回命令模式。

删除

x:删除光标后面字符,X:删除光标前面字符;6x/6X:删除光标后、前6个字符。
dd:删除光标整行,并把删除的行存到剪贴板里;6dd:删除光标及向下6行,并把删除的行存到剪贴板里。
输入ggdG清空所有内容(gg移到第一行,d删除,G最后一行)
输入u撤消操作,按一次恢复一次,输入4u则撤消最近的4次操作。按 Ctrl-R 为重做,可以将撤消<撤消命令的操作>。

复制与粘贴

yw:复制光标到行尾的字符,6yw:复制光标后6个字符;
yy:复制整行,3yy:复制光标及向下3行。
p:粘贴到光标的位置,得到移动一行或多行的组合命令:ddp6ddp,当然dd之后,要移动光标,不然就是向下移动一行。

光标移动

行首:^,行尾:$,首行:gg,尾行:G;
在当前光标行,再向下移11行,输入11;而将光标移到第11行,输入11G
Ctrl+G 为显示当前光标所在行的行号及总行数

查找

输入 /key?key+回车键,进行正向搜索或逆向搜索key;再使用n查找下一个,N查找上一个。区分大小写,支持正则。

插入模式:在命令模式,按iao进入,区别在于:

  • i:光标所在位置,进行输入(相似命令cw)
  • a:光标所在位置的下一个位置,进行输入
  • o:光标所在行的下面插入新行,进行输入

底行模式:在命令模式下,按“:”键进入

输入描述
:1,$d删除第1~最后一行,输入:3,5d删除第3行到第5行。
:15定位到第15行
:set nu显示行号命令nu是number的简化,取消显示为 :set nonu
:?aa在文件中查找aa字符,回车后按n/N查找下一个。等效命令:/aa
:w [filename]保存当前文件
:e重新加载当前文件
:q退出vi
:x!强制作用,与其他内部命令结合使用,比如::wq!:q!:e!
:!<bash CMD>在不退出vim的情况下,执行外部命令。比如::!ll ~:!bash

替换

:%s/要替换的字符串/新字符串/g
  • 其中: % 表示对整个文件进行操作,s 表示替换,g 表示全局替换。例如,要将文件中所有的 “apple” 替换为 “orange”,可以执行::%s/apple/orange/g
  • 使用 c 选项可以在每次替换前进行确认,避免误替换::%s/apple/orange/gc
  • 只在第 10 行到第 20 行之间替换::10,20s/apple/orange/g

自定义快捷键

vim用户级配置文件~/.vimrc,系统级配置文件/etc/vim/vimrc,可以在这些文件添加set number行,则vim默认显示行号。

功能键在vim中的 keyname不同模式下,定义命令
Ctrl 键对应 <c>
空格 键对应 <space>
alt 键对应 <a> 或者 <m>
esc 键对应 <esc>
退格键对应 <bs>
回车键对应 <cr>
shift 键对应 <shift>
f1 到 f12 对应 <f1><f12>
map: 定义所有模式下的通用快捷键
imap: 定义插入模式下的快捷键
nmpa: 定义命令模式下的快捷键
vmap: 定义视图模式下的快捷键

功能键与普通字母做组合键时,将字母键放入到 <>中,并以 - 和功能键做分割,比如说

  • 在命令模式下,输入:map <c-d> dd 来将 Ctrl+d 映射为dd
  • ~/.vimrc文件,增加行nmap <c-j> ddp<cr>来将Ctrl+j映射为ddp(向下移动一行)
    • 要注意:组合键或按键,不能使用已有的。比如nmap <a-j> ddp<cr>就没有效果。

视图/可视(选择与操作)模式

用于高效地选择和编辑文本块,快速选定文本区域,并高亮显示;对选中的内容可进行复制、粘贴、删除等操作。

命令模式下,按视图下操作命令
v:基本模式
V:行模式
CTRL+v:块模式
y:复制选定的文本
d:删除选定的文本
p:粘贴复制的文本

移动整行,要麻烦一些,在选中后,再输入,在底行的绿光标位置继续输入

  • :m '<-2 回车,将把选定行,向上移动一行。
  • :m '>+1 回车,将把选定行,向下移动一行。效果同ddp

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注