vi
打开一个新窗口,如果有加filename,表示在新窗口创建一个新文件,否则两个窗口为同一文件内容
:sp[filename]
光标移到下/上方窗口
ctrl+w+j/k
纵向增加分屏
:vsp(vertical split)
切换到下一个窗口
ctrl+w+w(window)
切换窗口
ctrl+w+r(reverse)
打开文件并定位行
vi 文件名 + 行数
段落移动
{ 上一段
} 下一段
标记
mx(mark) 添加标记x,x是a-z或A-Z之间任意一个字母
'x 直接定位到标记x所在的位置
撤销和恢复撤销
u(undo) 撤销上次命令
ctrl+r(redo) 恢复撤销的命令
删除文本
x(cut) #删除光标所在字符或所选文字
d(delete) #删除移动命令对应的内容
dd #删除光标所在行
D #删除至行尾
复制粘贴
y(copy) #复制
yy(copy) #复制一行,可nyy复制多行
p(paste) #粘贴
缩排和重复执行
>> #向右缩进
<< #向左缩进
. #重复上次命令
单词快速匹配
* #向后寻找当前光标所在单词
# #向前寻找当前光标所在单词
全局替换
:%s/oldfile/newfile/g
末行命令扩展
:e(edit) #会打开内置的文件浏览器,浏览当前目录下的文件
:e 文件名
:e 文件名(new) #新建文件
:w (write)文件名 #另存为
行内移动
w(word) 向后移动一个单词
b(back) 向前移动一个单词
o 移至行首
^ 移至行首(第一个不是空白字符位置)
$ 移至行尾