:wq 保存,退出
:q! 强制退出,:e! 放弃改动
h
j
k
l
0 行首(^ 非空行首),$ 行尾
i
a
o与O
% 跳到匹配括号
x
dd 删除本行,di( 删除括号内的内容
u撤销,Ctrl + r 重做
y 复制
p 粘贴
D 删除本行光标及之后的内容
复制到系统剪贴板
vim --version | grep "clipboard" 如果clipboard
前面有一个小小的减号,说明不支持。+号则为支持
sudo apt-get install vim-gnome
打开vim输入:reg
查看vim的寄存器,当支持clipboard之后,会多出"+
寄存器,表示系统剪切板,在vim中进入visual视图后使用"Ny
(N表示特定寄存器编好),将内容复制到特定的寄存器,那么我们的目的是要复制到系统剪切板则需要选中内容后输入命令
全选
ggVG
复制
"+y
粘贴
"+p
选中一部分作为新文件的内容,:w copy.txt
/yake 回车,向下查找,?yake 回车,向上查找。n和N跳转。ctrl + O返回
:%s /old/new/gc 替换所有,并询问
提示没有权限
:w !sudo tee % (!表示执行shell的外部指令)
:r !date
特殊指令
~ 变大写,gUw 本词大写
ctrl +g 显示文件名
vim a b -O 竖直分屏打开a、b文件。移动是Ctrl +w,hjwl
=============== 分屏快捷键 =========================
来个直观的例子,vimdiff 打开两个文件会自动分屏,并高亮显示差异:
$ vimdiff old.txt new.txt
下面来介绍一下包括 vim, terminator, tmux 在内的三种工具是怎么使用分屏的。
1. vim 分屏
vim 是 Linux 系统下最流行的编辑器之一,它支持分屏,而且很好用。
新建/取消屏幕
-
:new
:新建文件并水平分屏, 快捷键:Ctrl + w,n
-
:vnew
:新建文件并垂直分屏, 快捷键,Ctrl + w,v
-
:spilt
:水平分屏,将当前屏分为两个。快捷键:Ctrl + w, s
-
:vsplit
:垂直分屏,将当前屏分为两个。快捷:Ctrl + w, v
-
:sv 文件路径/文件名
:在新的水平分屏中打开文件 -
:vs 文件路径/文件名
:在新的垂直分屏中打开文件 -
:only
:取消分屏,仅保留光标所在屏幕,关闭其他
关闭屏幕
-
关闭当前屏:
Ctrl + w,c
-
关闭其他屏:
Ctrl + w, o
,效果同:only
切换窗口
-
Ctrl + w, w
后一个 -
Ctrl + w, p
前一个 -
Ctrl + w, h/j/k/l
四个方向
注:如果通过浏览器使用控制台,Ctrl + w
会关闭浏览器,切换窗口会成为一个麻烦,请在 ~/.vimrc
添加一个映射,用 Ctrl + Home/end
来做切换。
$ cat ~/.vimrc
:noremap <c-Right> <c-w>w
:noremap <c-Left> <c-w>p
2. terminator 分屏
Terminator 是 Ubuntu 平台下很强大的控制台工具,它的一个很重要的特性就是分屏。
新建屏幕
-
Ctrl + Shift + O
:上下开新窗口 -
Ctrl + Shift + E
:垂直开新窗口
关闭屏幕
-
Ctrl + Shift + W
:关闭当前窗口 -
Ctrl + Shift + Q
:退出 terminator
切换屏幕
-
Ctrl + Shift + N
或Ctrl + Tab
:前后切换窗口 -
Ctrl + Shift + P
或Ctrl + Shift + Tab
-
Alt + Up/Down/Left/Right
:上下左右切换窗口
其他
-
Ctrl + Shift + Right/Left/Up/Down
:四个方向调整窗口大小 -
Ctrl + Shift + F
:在当前窗口搜索字符串 -
Ctrl + Shift + X
:最大化当前窗口 -
Ctrl + Shift + Z
:切换显示所有窗口 or 仅显示当前窗口
3. tmux 分屏
tmux 是另外一款分屏工具,有很多粉丝。
新建屏幕
-
上下分屏:
Ctrl + b, "
(按Shift + "
所在按键,很奇葩的设计,得按两次) -
左右分屏:
Ctrl + b, %
(按Shift + %
所在按键)
关闭屏幕
-
Ctrl + b, x
切换屏幕
-
Ctrl + b, o
-
Ctrl + b, 空格
:上下分屏与左右分屏切换