使用前需要知道的
vim 是对vi的扩展,文中的很多操作是vi通用的
vi是区分大小写的命令的,也就是说 与 是不同的命令
在不同模式下,快捷键是不一样的 模式分
常用操作
进入一般模式为开始编辑,或者按esc后进入
按键
a,i,r,o,A,I,R,O
进入编辑模式
h,backspace
左移动
l,space
右移动
j
下移动
k
上移动
0
移动到行手部
$
移动到行末尾
H
移动到屏幕最上
M
移动到屏幕中央
L
移动到屏幕最下
G
移动到文档最后一行
gg
移动到文档第一行
v
进入光标模式,配合移动键选中多行
Ctrl+f
向下翻页
Ctrl+b
向上翻页
u
撤销上一次操作
..
回到上次编辑的位置
dw
dd
删除光标当前行
dG
d$
d0
y
复制当前行,会复制换行符
yy
复制当前行的内容
yyp
复制当前行到下一行,此复制不会放到剪切板中
nyy
复制当前开始的n行
p,P,.
粘贴
ddp
当前行和下一行互换位置
J
合并行
Ctrl+r
重复上一次动作
Ctrl+z
暂停并退出
ZZ
保存离开
xp
交换字符后面的交换到前面
~
更换当前光标位置的大小写,并光标移动到本行右一个位置,直到无法移动
光标详细操作
按键
Ctrl+e
向下滚动
e,w
按照单词向后移动
E,W
按照空格向后移动
b
按照单词向前移动
B
按照空格向前移动
(
光标到句尾
)
光标到局首
{
光标到段落开头
}
光标到段落结尾
nG
光标下移动到n行的首位
n$
光标移动到n行尾部
n+
光标下移动n行
n-
光标上移动n行
查找命令
指令
*
向下查找同样光标的字符
#
向上查找同样光标的字符
/code
查找 code 一样的内容,向后
?code
查找 code 一样的内容,向前
n
查找下一处
N
查找上一处
ma
`a
移动到一个标记a
d`a
:marks
查看所有标记
指令模式
指令
:q
一般退出
:q!
退出不保存
:wq
保存退出
:w filename
另存为 filename
:jumps
历史编辑文档记录
:set nu
设置行号显示
:set nonu
取消行号显示
:set
显示设置参数
:set autoindent
自动缩排,回车与第一个非空格符对齐
:Syntax on/off
根据程序语法高亮显示
:set highlight
高亮设置查看
:set hlsearch
:nohlsearch
:set nohlsearch
:set bg=dark
设置暗色调
:set bg=light
设置亮色调
屏幕翻滚
按键
Ctrl+f
向文件尾翻一屏幕
Ctrl+b
向文件首翻一屏幕
Ctrl+d
向文件尾翻半屏幕
Ctrl+u
向文件首翻半屏幕
插入命令
按键
i
在光标前
I
在当前行首
a
在光标后
A
在当前行尾部
o
在当前行下新开一行
O
在当前行上新开一行
r
替换当前字符
R
替换当前行及后面的字符,直到按esc为止
s
从当前行开始,以输入的文本替代指定数目的字符
S
删除指定数目的行,并以输入的文本替代
ncw,nCW
修改指定数目n的字符
nCC
修改指定数目n的行
删除命令
按键
ndw,nDW
删除光标开始及其后 n-1 个字符
dw
dd
删除光标当前行
dG
d$
d0
ndd
删除当前行,以及其后的n-1行
x
删除一个字符,光标后
X
删除一个字符,光标前
Ctrl+u
删除输入模式下的输入的文本
多窗口模式
指令
:split
创建新窗口
Ctrl+w
切换窗口
Ctrl-w =
所有窗口一样高
Ctrl-w+方向键
多窗口视图切换
多文件编辑
指令
:args
列出当前编辑的文件名
:next
N(ext) 切换
:file
列出当前打开的所有文件
vim 自定义技巧
复制粘贴取消缩进
进入paste模式以后,可以在插入模式下粘贴内容,不会有任何变形
这个参数做了这么多事:下面的选项值不变,但却被禁用
绑定快捷键来激活/取消 paste模式
使用vim寄存器
使用vim寄存器 “+p 粘贴
根本不用考虑是否自动缩进,是否paste模式,直接原文传递
注意两个特殊的寄存器: 和
这两个寄存器是和系统相通的,前者关联系统选择缓冲区,后者关联系统剪切板
通过它们可以和其他程序进行数据交换若寄存器列表里无 或 寄存器,则可能是由于没有安装vim的图形界面所致
sudo apt-get install vim-gnome设置vim永远显示行号
然后输入
当然也可以输入其他配置类似
查看vim设置的样例文件
找到标识为 的文件就是样例
作者:泛原罪链接:http://www.jianshu.com/p/dde77e3b299f來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。gG一般模式编辑模式指令模式:set pastetextwidth设置为0- wrapmargin设置为0
- set noai
- set nosi
- softtabstop设置为0
- revins重置
- ruler重置
- showmatch重置
- formatoptions使用空值lisp
- indentexpr
- cindent:set pastetoggle=<F11>:reg*+*+vi ~/.vimrcset nuset nonu
- Syntax onlocate vimrcvimrc_example.vim