vim快捷键,及vimrc的简单设置

来源:互联网 发布:php多文件上传 编辑:程序博客网 时间:2024/05/17 20:31
1) 光标的移动
H 光标移动到屏幕的顶行行首
M 光标移动到屏幕的中间行行首
L 光标移动到屏幕的末行行尾

0   光标移动到当前行行首
$ 光标移动到当前行行尾
G 光标移动到当前行行首
gg  光标移动到首行行首
nG 光标下移N行(包括当前行)至行尾
n+ 光标下移N行(包括当前行)至行首
n- 光标上移N行(包括当前行)至行首
%    先吧光标停留在 ”{” 或者 “}” 能直接移动到与当前大括号匹配的另一个大括号


|
n| 光标移动到当前行的第n列


注意:vim是区分大小写的,H等价于Shift + h,也就是H和h是不同的命令


小提示:
光标的移动可以和删除命令和复制复制命令一起使用!!
       如:
d + 2 G 等价于删除从光标开始到第2行的所有内容
y + 2 G等价于复制从光标开始到第2行的所有内容
d + % 删除块中的所有内容
同理:d + gg 和 d+ G是什么作用?



2) 翻滚屏幕


Ctrl + u 向文件首方向翻滚半屏幕
Ctrl + d 向文件尾方向翻滚半屏幕
Ctrl + b 向文件首方向翻滚一个屏幕
Ctrl + f 向文件尾方向翻滚一个屏幕


Ctrl + g 列出光标所在行的行号, 文件名, %n
Ctrl + p 调用插件补全单词快捷键pattern
Ctrl + r 恢复


3)插入文本


i 从光标前面插入
I 从光标所在行的行首插入
a 从光标后面面插入
A 从光标所在行的末尾插入
o 从光标所在行的下一行插入(新增一行)
O 从光标所在行的上一行插入(新增一行)
r 替换光标所在处的字符
nr 替换光标所在处以及后面的n个字符
R 进入替换状态,直到按下ESC结束



提示:很多初学者一般只会用 i ,但I A o也挺重要的,可以大大减少我们移动光标的次数!!


4) 删除文本


x 删除从当前位置开始的个字符,含光标所指字符
X 从当前位置开始向前删除字符,不包含所指字符
NX
NX
D$ 删除到行尾
D0 删除到行首
dw
dn


dd
ndd



5)复制 粘帖 移动


yy
nyy
yw
p


:n1, n2 co n3  复制
:n1, n2 m  n3  粘帖


n1表示哪一行,n2表示从n1往下修改多少行(包含n1) 一个>表示一个\t
:n1 > n2 
:n1 < n2
:n1 >> n2
:n1 << n2


6) 查找和替换


/ 从当前的位置开始向文件末尾方向搜索
? 从当前的位置开始向文件开始方向搜索
n 沿着相同的方向继续查找
N 沿着相反的方向继续查找


不加g表示之替换行的地一个
:s/old/new
:s/old/new/g
n1,p2/old/new/g 将地n1行到n2行所有的old替换为new
:0,$ s/old/new/g 0和$表示从首行到末行
:%s/old/new/g %表示全部行,加g表示全部替换,不加g只替换全部行的第一个


7) 撤销和重复


u 撤销先前的命令,一直往前撤销
U 修正先前的一条撤销命令
:undo 撤销先前的命令
. 重复编辑状态中最后一次输入
Ctrl + r 撤销刚才所做的撤销操作(还原撤销状态)


8) 基本底行命令


:q
:q!
:w
:w! 保存只读文件, 强制保存

:wq
:x
ZZ


:e file_name 在当前vi文件中欧给你打开一个新的文件,原来的文件会被关闭
:e! load 重新载入当前文件,之前的修改会被全部放弃
:new 打开一个新的文件, 原来的文件不会被关闭,分页显示


:! 不离开vi环境执行shell命令
:n 跳转到第n行


9) 设置选项
:set all 显示所有的选项当前
:set autoindent/noautoindent 自动缩进/不自动缩进
:set ai / noai
syntax on / off 语法加亮
set st = 4
set ts = 4


配置文件(伸手党直接看这)


vi ~/.vimrc(首先打开当前用户的vimrc配置文件)


C++风格的缩减格式,用下面的命令打开配置文件后,把下面的英文复制进去,保存退出即可


set cindent
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
set number              " Show line number
set tabstop=4
set softtabstop=4
set autoindent
set shiftwidth=4
if &term=="xterm"
set t_Co=8
             set t_Sb=^[[4%dm
    set t_Sf=^[[3%dm
    endif


10) 较常用的命令
S 修改光标所在行的内容,原来的内容会被删除
C 删除光标所在行后面的内容并切换到输入状态,如1234567,光标停留在4,S后只有123
K     和!作用一样
J 把光标所在行的和光标下一行连接在一起
:split + 文件名 打开另一个文件,2个文件公用一个窗口,以水平分屏显示

:vplit + 文件名 同上,以垂直分屏显示


最后送上一张比较基经典的图片



0 0
原创粉丝点击