vim命令笔记

转自:http://my.oschina.net/redstar/blog/118603

一般模式:移动光标

h 或  ←                    #光标向左移动一个光标
j  或  ↓                    #光标向下移动一个光标
k 或  ↑                    #光标向上移动一个光标
l  或  →                    #光标向右移动一个光标
移动多行,30j 或者 30↓

Ctrl + f                    #向下移动一页
Ctrl + b                   #向上移动一页
Ctrl + d                   #向下移动半页
Ctrl + u                   #向上移动半页

+                           #移动到非空格的下一行
-                            #移动到非空格的上一行
n               #n表示数字,20 + 空格,光标在所在行移动20个字符距离

0                           #数字0,移动到行的最前字符(常用)
$                           #移动到行尾(常用)

H                           #移动到屏的最上一行
M                           #移动到屏的中间一行
L                            #移动到屏的最下一行

G                           #移动到文件的最后一行(常用)
nG                          #n为数字,20G。移动到文件的第20行
gg                          #移动到文件第一行(常用)
n                #n为数字。向下移动n行(常用)

一般模式:搜索与替换

/word                      #从光标开始,向下查找个名字为word的字符串。(常用)
?word                      #从光标开始,向上查找个名字为word的字符串。 
n                            #n为按键,重复前一个搜索动作
N                            #N为按键,重复与前一个搜索动作相反的操作

:n1、n2s/f_word/i_word/g    #从第一行和n2行,i_word替换f_word。例子:11、22s/find/inste/g  (常用)
:1、$s/f_word/i_word/g        #从第一行和最后一行,i_word替换f_word。(常用)
:1、$s/f_word/i_word/gc        #从第一行和最后一行,i_word替换f_word,且替换前提醒用户确认(常用)

一般模式:删除、复制与粘贴

x,X                        #x删除后一个字符,X删除前一个字符
nx                           #n为数字,连续向后删除n个字符
dd                          #删除整行(常用)
ndd                         #n为数字,向下删除n行
d1G                         #删除光标所在位置到第一行的所有数据
dG                          #删除光标所在位置到最后一行的所有数据
d$                          #删除光标所在位置到行尾的字符串
d0                          #删除光标所在位置到行首的字符串

yy                           #复制光标所在的那一行(常用)
nyy                         #n为数字,复制光标所在的向下n行。例:20yy(常用)
y1G                         #复制光标所在行到第一行
yG                           #复制光标所在行到最后一行
y$                           #复制光标到行尾的字符串
y0                           #复制光标到行首的字符串

p,P                        #p将复制内容粘贴到光标的下一行,P将复制内容粘贴到光标的上一行(常用)
J                             #将光标所在行与下一行结合成同一行
c                             #重复删除多个数据,例如 10cj

撤销和回复

u                            #复原前一个操作
Ctrl + r                    #重做上一个操作

.                             #这是个小点,重复前一个动作

进入编辑模式

i、I                          #插入,i 光标处插入,I 在当前第一个非空符处开始插入(常用)
a、A                        #a 当前光标下一个字符开始插入;A 从光标所在行最后一个字符处开始插入(常用)
o、O                        #o 当前光标下一行插入新的一行;O 光标上一行,插入新行(常用)
r、R                         #替换:r 替换光标所在那一个字符;R 一直替换所在文字,直到按下Esc键为止(常用)

退回一般模式

Esc                          # 退回一般模式

命令行命令模式

:w                            #写入硬盘
:w                            #强制写入该文件
:q                            #离开 vim
:q!                           #强制退出,不保留修改
:wq                          #写入,并退出

:e!                           #将文件还原到最原始状态

ZZ                           #若文件没有更改,则不存储离开;若修改,则存储后退出
:w [file name]           #将编辑内容存储到file name文件
:r  [file name]           #将file name文件写入光标所在行的后面

:n1、n2w[file name]   #将n1行到n2行写入到file name文件
:!command               #暂时离开vim到命令模式执行command。例 !ls /home
:set nu                    #显示行号
:set nonu                 #取消行号

块选择

v                            #字符选择,会将光标经过的地方反白选择
V                            #行选择,将光标经过的行反白选择
Ctrl + v                   #块选择,可以用长方形的方式选择数据
y                            #复制反白的地方
d                            #删除反白的地方

多文件编辑

:n                           #编辑下一个文件
:N                           #编辑上一个文件
:file                        #列出当前vim打开的所有文件

多窗口功能

:sp[file name]          #打开一个新的窗口,加filename,则新窗口打开新文件,否则内容同一
Ctrl + wj                  #先按Ctrl,再w,放开再按j,光标进入下一个窗口
Ctrl + wk                 #同上,方向相反
Ctrl + wq                 #当前的退出,跳到下个窗口

vim环境设置

:set nu                    #
:set hlsearch            #
:set backup              #
:set ruler                  #
:set showmode               #
:set backspace=(012)      #
:set all                           #
:syntax(off|on)               #

DOS与Linux的换符

dos2unix -kn    file   newfile
unix2dos -kn    file   newfile

你可能感兴趣的:(Linux)