认识Vim

  • vim
    • window and buffer
    • normal模式
    • 命令行模式
      • 窗口管理

vim

vim是基于Unix或类Unix系统的功能强大的编辑器。熟悉vim的使用将有效提高工作效率。
vim有多种模式。如normal模式、insert模式、replace模式、visual模式、visual-line模式、visual-block模式和command-line模式。当加载vim时,默认进入normal模式。 从任何模式按下Esc会回到插入模式。
下表给出了从normal模式到其余模式的转换,以及各模式的简单概述

模式转换概述
normal-默认模式,可以移动光标、阅读文本 、在特定位置做一些简单的修改
inserti插入模式,进入buffer,可以通过标准输入编辑文本
replaceR替换模式,进入buffer,可以通过标准输入替换文本
visualv视图模式,可以通过移动光标选中指定文本进行指定操作
visual-lineV行视图模式,以行为单位
visual-blockCtrl+v块视图模式,以块为单位
command-line:命令行模式,可以对文件进行一系列操作

window and buffer

vim把每一个要处理的文本视为一个buffer,把显示器上每一个用于编辑的界面视为一个window,一个window可以打开一个buffer,但一个buffer可以用0个、1个或多个window(s)打开。用不同的windows打开的同一个buffer对其的编辑是实时的。

normal模式

光标移动:
以字节为单位:可以通过↑↓←→以字节为单位移动光标,但不推荐,想要快速便捷地移动光标可以用hjkl,其中hjkl
以单词为单位:
w:移动到下一个单词词头
b:移动到上一个单词词头
e:移动到下一个单词词尾(若光标不在单词词尾则移动到该单词词尾)
以行为单位:
0:移动到行首
$:移动到行尾
^:移动到行首第一个不为空白的单词
其它:
Ctrl+u:上一页
Ctrl+d:下一页
G:文本最底部
gg:文本最顶部
L:当前页的底部
M:当前页的中部
U:当前页的顶部
查找和跳转:
fs:光标移动到光标之后距离光标最近的同一行的s
Fs:光标移动到光标之前距离光标最近的同一行的s
ts:光标移动到光标之后距离光标最近的s的前一个字符(同一行)
Ts:光标移动到光标之前距离光标最近的s的后一个字符(同一行)
%:光标移动到与括号(或中括号、花括号、引号)对应的另一个括号(或中括号、花括号、引号)
编辑文本:
o:open a new line below your cursor,and then go into insert-mode.
O:open a new line above your cursor,and then go into insert-mode.
d:delete,需搭配光标移动指令,如dw是删除光标下的单词,d$是删除从光标到行尾的字符,dd会删除整行
c:change,用法同d,区别在于执行后会进入插入模式
操作:
u:undo,撤销操作。
Ctrl+r:redo,恢复操作。
复制粘贴:
y:yank,复制,需搭配光标移动指令
p:pasete,粘贴
重复命令:
在命令前使用数字可以重复命令指定次数。如8dw为删除8个单词
修饰符:
a:around,和命令和括号(或中括号、花括号、引号一起使用),表示作用范围是符号及其符号里面。如da{命令删除花括号及其里面的内容
i:inside,和命令和括号(或中括号、花括号、引号一起使用),表示作用范围是符号里面。如da{命令删除花括号里面的内容(不包括花括号)

命令行模式

w:保存(窗口),只有当全部缓存都被退出后vim才会被退出
q:退出
wq:保存并退出(窗口)
q!:强制退出
e file_name:打开某文件
ls:显示打开的缓存
help order_name:显示命令的帮助文档
%s/foo/bar/g:在整个文件中将 foo 全局替换成 bar

窗口管理

sp filename:垂直切分窗口,新切分的窗口中的文件为指定的文件名的文件,若无filename,默认为当前光标所在文件
vsp filename:水平切分窗口,新切分的窗口中的文件为指定的文件名的文件,若无filename,默认为当前光标所在文件
Ctrl+w w:光标移动到下一个窗口
resize +/-number:改变窗口的高度
vertical resize +/-number:改变窗口的宽度

更多推荐

认识Vim