实用功能:
=G 从光标所在行到尾行对其所有代码
* 选择光标所在字符串(所有)
多行插入或删除tab缩进技巧:
- V(shift + v) 先选择多行
- >(shift + .) 对选择行增加tab缩进
- <(shift + ,) 对选择行减少tab缩进
vim -b :打开二进制文件,并在文件中:%!xxd
块选择:
v:字符选择,会将光标经过的地方反白选择
V:行选择,会将光标经过的行反白选择
Ctrl+v:块选择,可以用长方形的方式选择数据
y:将反白的地方复制起来
d:将反白的地方删除
多文件编辑:
:n 编辑下一个文件
:N 编辑上一个文件
:files 列出目前这个vim打开的所有文件
多窗口功能:
:sp [filename] 打开一个新窗口,如果加上了filename,表示在新窗口打开一个新文件,否则表示两个窗口为同一个文件
ctrl+w ,j 先按ctrl+w再按j,移动光标到下面的窗口
ctrl+w,k 先按ctrl+w再按k,移动光标到上面的窗口
ctrl+w,q 离开当前选中的窗口
NERDTree相关
:NERDTree 打开NERDTree目录树
o 在已有窗口中打开文件、目录或书签,并跳到该窗口
go 在已有窗口 中打开文件、目录或书签,但不跳到该窗口
t 在新 Tab 中打开选中文件/书签,并跳到新 Tab
T 在新 Tab 中打开选中文件/书签,但不跳到新 Tab
i split(水平分割) 一个新窗口打开选中文件,并跳到该窗口
gi split(水平分割) 一个新窗口打开选中文件,但不跳到该窗口
s vsplit(垂直分割) 一个新窗口打开选中文件,并跳到该窗口
gs vsplit(垂直分割) 一个新 窗口打开选中文件,但不跳到该窗口
ctrl + w 在所有窗口中切换
ctrl + w + h 光标 focus 左侧树形目录
ctrl + w + l 光标 focus 右侧文件显示窗口
ctrl + w + w 光标自动在左右侧窗口切换
ctrl + w + r 移动当前窗口的布局位置
q 关闭 NerdTree 窗口
? 切换是否显示 Quick Help
:tabnew [++opt选项] [cmd] file 建立对指定文件新的tab
:tabc 关闭当前的 tab
:tabo 关闭所有其他的 tab
:tabs 查看所有打开的 tab
:tabp 前一个 tab
:tabn 后一个 tab
标准模式下:
gT 前一个 tab
gt 后一个 tab
! 执行当前文件
O 递归打开选中 结点下的所有目录
x 合拢选中结点的父目录
X 递归 合拢选中结点下的所有目录
e Edit the current dif
双击 相当于 NERDTree-o
中键 对文件相当于 NERDTree-i,对目录相当于 NERDTree-e
D 删除当前书签
P 跳到根结点
p 跳到父结点
K 跳到当前目录下同级的第一个结点
J 跳到当前目录下同级的最后一个结点
k 跳到当前目录下同级的前一个结点
j 跳到当前目录下同级的后一个结点
C 将选中目录或选中文件的父目录设为根结点
u 将当前根结点的父目录设为根目录,并变成合拢原根结点
U 将当前根结点的父目录设为根目录,但保持展开原根结点
r 递归刷新选中目录
R 递归刷新根结点
m 显示文件系统菜单
cd 将 CWD 设为选中目录
I 切换是否显示隐藏文件
f 切换是否使用文件过滤器
F 切换是否显示文件
B 切换是否显示书签
语系编码转换:
iconv –list 列出iconv支持的语系
iconv -f 原编码 -t 新编码 filename -o newfile
job control:
[command] & 将命令丢到后台执行
ctrl+z 将目前工作丢到后台暂停
jobs [-lrs] 查看job
fg %[jobnumber] 将后台工作拿到前台来处理
bg %[jobnumber] 将后台工作状态变为运行中
kill [-1/2/9/15] %[jobnumber] 管理后台的工作