您的位置:首页 > 其它

vim 命令合集

2015-01-26 10:20 204 查看


wget http://files.cnblogs.com/ma6174/vimrc.zip

unzip -f vimrc.zip -d ~/



配置:https://github.com/ma6174/vim

简易安装方法:

打开终端,执行下面的命令就自动安装好了:

wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x


或者自己手动安装:(以ubuntu为例)

安装vim
sudo apt-get install vim

安装ctags:
sudo apt-get install ctags

安装一些必备程序:
sudo apt-get install xclip vim-gnome astyle python-setuptools

python代码格式化工具:
sudo easy_install -ZU autopep8

sudo ln -s /usr/bin/ctags /usr/local/bin/ctags

clone配置文件:
cd ~/ && git clone git://github.com/ma6174/vim.git

mv ~/vim ~/.vim

mv ~/.vim/.vimrc ~/

clone bundle 程序:
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

打开vim并执行bundle程序
:BundleInstall

重新打开vim即可看到效果

编写python程序

自动插入头信息:

#!/usr/bin/env python

# coding=utf-8


输入
.
或按
TAB
键会触发代码补全功能
:w
保存代码之后会自动检查代码错误与规范
F6
可以按
pep8
格式对代码格式优化
F5
可以一键执行代码

多窗口操作

使用
:sp + 文件名
可以水平分割窗口
使用
:vs + 文件名
可以垂直分割窗口
使用
Ctrl + w
可以快速在窗口间切换



命令历史

以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。

启动vim

在命令行窗口中输入以下命令即可

vim 直接启动vim

vim filename 打开vim并创建名为filename的文件

文件命令

打开单个文件

vim file

同时打开多个文件

vim file1 file2 file3 ...

在vim窗口中打开一个新文件

:open file

在新窗口中打开文件

:split file

切换到下一个文件

:bn

切换到上一个文件

:bp

查看当前打开的文件列表,当前正在编辑的文件会用[]括起来。

:args

打开远程文件,比如ftp或者share folder

:e ftp://192.168.10.76/abc.txt
:e \\qadrive\test\1.txt

vim的模式

正常模式(按Esc或Ctrl+[进入) 左下角显示文件名或为空

插入模式(按i键进入) 左下角显示--INSERT--

可视模式(不知道如何进入) 左下角显示--VISUAL--

导航命令

% 括号匹配

插入命令

i 在当前位置生前插入

I 在当前行首插入

a 在当前位置后插入

A 在当前行尾插入

o 在当前行之后插入一行

O 在当前行之前插入一行

查找命令

/text  查找text,按n健查找下一个,按N健查找前一个。

?text  查找text,反向查找,按n健查找下一个,按N健查找前一个。

vim中有一些特殊字符在查找时需要转义  .*[]^%/?~$

:set ignorecase  忽略大小写的查找

:set noignorecase  不忽略大小写的查找

查找很长的词,如果一个词很长,键入麻烦,可以将光标移动到该词上,按*或#键即可以该单词进行搜索,相当于/搜索。而#命令相当于?搜索。

:set hlsearch  高亮搜索结果,所有结果都高亮显示,而不是只显示一个匹配。

:set nohlsearch  关闭高亮搜索显示

:nohlsearch  关闭当前的高亮显示,如果再次搜索或者按下n或N键,则会再次高亮。

:set incsearch  逐步搜索模式,对当前键入的字符进行搜索而不必等待键入完成。

:set wrapscan  重新搜索,在搜索到文件头或尾时,返回继续搜索,默认开启。

替换命令

ra 将当前字符替换为a,当期字符即光标所在字符。

s/old/new/ 用old替换new,替换当前行的第一个匹配

s/old/new/g 用old替换new,替换当前行的所有匹配

%s/old/new/ 用old替换new,替换所有行的第一个匹配

%s/old/new/g 用old替换new,替换整个文件的所有匹配

:10,20 s/^/ /g 在第10行知第20行每行前面加四个空格,用于缩进。

ddp 交换光标所在行和其下紧邻的一行。

移动命令

h 左移一个字符

l 右移一个字符,这个命令很少用,一般用w代替。

k 上移一个字符

j 下移一个字符

以上四个命令可以配合数字使用,比如20j就是向下移动20行,5h就是向左移动5个字符,在Vim中,很多命令都可以配合数字使用,比如删除10个字符10x,在当前位置后插入3个!,3a!<Esc>,这里的Esc是必须的,否则命令不生效。

w 向前移动一个单词(光标停在单词首部),如果已到行尾,则转至下一行行首。此命令快,可以代替l命令。

b 向后移动一个单词 2b 向后移动2个单词

e,同w,只不过是光标停在单词尾部

ge,同b,光标停在单词尾部。

^ 移动到本行第一个非空白字符上。

0(数字0)移动到本行第一个字符上,

<HOME> 移动到本行第一个字符。同0健。

$ 移动到行尾 3$ 移动到下面3行的行尾

gg 移动到文件头。 = [[

G(shift + g) 移动到文件尾。 = ]]

f(find)命令也可以用于移动,fx将找到光标后第一个为x的字符,3fd将找到第三个为d的字符。

F 同f,反向查找。

跳到指定行,冒号+行号,回车,比如跳到240行就是 :240回车。另一个方法是行号+G,比如230G跳到230行。

Ctrl + e 向下滚动一行

Ctrl + y 向上滚动一行

Ctrl + d 向下滚动半屏

Ctrl + u 向上滚动半屏

Ctrl + f 向下滚动一屏

Ctrl + b 向上滚动一屏

撤销和重做

u 撤销(Undo)

U 撤销对整行的操作

Ctrl + r 重做(Redo),即撤销的撤销。

删除命令

x 删除当前字符

3x 删除当前光标开始向后三个字符

X 删除当前字符的前一个字符。X=dh

dl 删除当前字符, dl=x

dh 删除前一个字符

dd 删除当前行

dj 删除上一行

dk 删除下一行

10d 删除当前行开始的10行。

D 删除当前字符至行尾。D=d$

d$ 删除当前字符之后的所有字符(本行)

kdgg 删除当前行之前所有行(不包括当前行)

jdG(jd shift + g) 删除当前行之后所有行(不包括当前行)

:1,10d 删除1-10行

:11,$d 删除11行及以后所有的行

:1,$d 删除所有行

J(shift + j)  删除两行之间的空行,实际上是合并两行。

拷贝和粘贴

yy 拷贝当前行

nyy 拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。

p 在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。

shift+p 在当前行前粘贴

:1,10 co 20 将1-10行插入到第20行之后。

:1,$ co $ 将整个文件复制一份并添加到文件尾部。

正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按y即可复制

ddp交换当前行和其下一行

xp交换当前字符和其后一个字符

剪切命令

正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按d即可剪切

ndd 剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴

:1,10d 将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。

:1, 10 m 20 将第1-10行移动到第20行之后。

退出命令

:wq 保存并退出

ZZ 保存并退出

:q! 强制退出并忽略所有更改

:e! 放弃所有修改,并打开原来文件。

窗口命令

:split或new 打开一个新窗口,光标停在顶层的窗口上

:split file或:new file 用新窗口打开文件

split打开的窗口都是横向的,使用vsplit可以纵向打开窗口。

Ctrl+ww 移动到下一个窗口

Ctrl+wj 移动到下方的窗口

Ctrl+wk 移动到上方的窗口

关闭窗口

:close 最后一个窗口不能使用此命令,可以防止意外退出vim。

:q 如果是最后一个被关闭的窗口,那么将退出vim。

ZZ 保存并退出。

关闭所有窗口,只保留当前窗口

:only

录制宏

按q键加任意字母开始录制,再按q键结束录制(这意味着vim中的宏不可嵌套),使用的时候@加宏名,比如qa。。。q录制名为a的宏,@a使用这个宏。

执行shell命令

:!command

:!ls 列出当前目录下文件

:!perl -c script.pl 检查perl脚本语法,可以不用退出vim,非常方便。

:!perl script.pl 执行perl脚本,可以不用退出vim,非常方便。

:suspend或Ctrl - Z 挂起vim,回到shell,按fg可以返回vim。

注释命令

perl程序中#开始的行为注释,所以要注释某些行,只需在行首加入#

3,5 s/^/#/g 注释第3-5行

3,5 s/^#//g 解除3-5行的注释

1,$ s/^/#/g 注释整个文档。

:%s/^/#/g 注释整个文档,此法更快。

帮助命令

:help or F1 显示整个帮助

:help xxx 显示xxx的帮助,比如 :help i, :help CTRL-[(即Ctrl+[的帮助)。

:help 'number' Vim选项的帮助用单引号括起

:help <Esc> 特殊键的帮助用<>扩起

:help -t Vim启动参数的帮助用-

:help i_<Esc> 插入模式下Esc的帮助,某个模式下的帮助用模式_主题的模式

帮助文件中位于||之间的内容是超链接,可以用Ctrl+]进入链接,Ctrl+o(Ctrl + t)返回

其他非编辑命令

. 重复前一次命令

:set ruler?  查看是否设置了ruler,在.vimrc中,使用set命令设制的选项都可以通过这个命令查看

:scriptnames  查看vim脚本文件的位置,比如.vimrc文件,语法文件及plugin等。

:set list 显示非打印字符,如tab,空格,行尾等。如果tab无法显示,请确定用set lcs=tab:>-命令设置了.vimrc文件,并确保你的文件中的确有tab,如果开启了expendtab,那么tab将被扩展为空格。

Vim教程

在Unix系统上

$ vimtutor

在Windows系统上

:help tutor

:syntax 列出已经定义的语法项

:syntax clear 清除已定义的语法规则

:syntax case match 大小写敏感,int和Int将视为不同的语法元素

:syntax case ignore 大小写无关,int和Int将视为相同的语法元素,并使用同样的配色方案

vi (vim) 详解/图解

[语法] : vi [-wn] [-R] 文件...

[说明]: vi 是一个基于行编辑器 ex 上的全屏幕编辑器, 可以在 vi 中使用 ex, ed 的全部命令, vi 选项中 -wn 指将编辑

窗口大小置为 n 行, -R 为将编辑的文件置为只读模式, vi 工作模式分为命令模式和输入模式, 一般情况下在命令模式下,

可敲入 vi 命令, 进入输入模式下时可以编辑要编辑的文本, 命令 a A i I o O c C s S R 可进入输入模式, 在输入模式下

按 ESC 键可推出输入模式, 回到命令模式, 在命令模式中敲入: 命令, 则可进入 ex 方式, 在屏幕底部出现提示符 : ,

此时可使用任意 ex 命令, 屏幕底行也用来作/ ? ! 命令的提示行, 大多数命令可以在其前面加数字, 表示命令执行的重复

次数, 下面简单介绍一下 vi 的命令集, ^ 表示(CTRL) 键

^B 退回前一页, 前面加数字表示重复次数, 每次换页时

保留上一页的两行

^D 在命令模式下, 表示下滚屏幕的一半, 在输入模式下, 表示回退至

左边的自动缩进处

^E 显示屏幕底线之下的一行

^F 前进一页, 前面加数字表示重复次数, 每次换页时

保留上一页的两行

^G 显示当前文件名 , 当前行号和文件总行数, 并用百分号当前行在

整个文件中的位置

^H(退格) 在命令模式下, 光标左移一格; 在输入模式下, 删去前面的字符

^I(TAB) 在输入模式下, 产生一串空格

^J(LF) 光标下移一行

^L 刷新屏幕, 即将屏幕重新显示

^M(回车) 在命令模式下, 光标移动至下行开头

在输入模式下, 开辟一新行

^N 光标下移一行

^P 光标上移一行

^Q 在输入模式下, 将其后的非打印字符作为正文插入

^R 刷新屏幕

^U 屏幕上滚一半, 前面加数字时表示上滚的行数, 此数字对

以后的^D ^U 命令有效

^V 在输入模式下, 将其后的非打印字符作为正文插入

^W 在输入模式下, 使光标回退一个字

^Y 显示屏幕底线之上的一行

^Z 暂停编辑, 退回上层 Shell

^[(ESC) 退出输入模式, 回到命令模式

! 暂时退出编辑, 执行 Shell 命令

(双引号) 用于标志有名缓冲区, 编号缓冲区 1-9 用于保存被删去的正文, 字

母名缓冲区 a-z 供用户存放自定义的正文

$ 将光标移动到当前行尾, 前加数字则表示前移行数, 如 2$表示移动

到下一行行尾

% 将光标移动到配对的小括号() 或大括号{} 上去

( 退回句子开头

) 前移到句子开头

- 退到上一行第一个非空格字符

. 重复上一次改变缓冲区内容的命令

/ 模式 向前搜索模式, 将光标移动到模式出现处, 模式是一个正规

表达式, (参看 grep)

: 在屏幕底部提示:, 其后可使用 ex 命令

? 功能同 / , 但方向是向前查找

[[ 光标回退至前一节分界处

转意符

]] 光标前移至节分界处

^(不是 CTRL) 光标移至当前行第一个非空字符上

' 连续两个'' 表示将光标移至其移动前的位置, ' 后跟字母表示光标字

母标记的行首(参看 m 命令)

A 在行尾插入正文, 进入输入模式

B 光标回退一个字

C 替换光标后的内容

D 删除光标后的内容

E 光标前移到字尾

F 字符 在当前行向左查找指定字符

G 光标移动到其前面数字指定的行, 若未指定则移动到最后一行

H 光标移动到屏幕顶行, 若前面有数字, 则移动到屏幕上该数字

指定的行

I 在行开头插入正文

J 连接两行, 若前面有数字则连接数字指定的行

L 光标移动到屏幕底行, 若前面有数字, 则移动到屏幕底线往上数该

数字指定的行

M 光标移动到屏幕中线

N 使用模式查找/或?时, 重复找下一个匹配的模式, 但方向与上次相

反, 其功能同 n , 但方向相反

O 在当前行上开辟一新行

P 将上次被删除的正文插入光标前面, 可在其前面加缓冲区编号, 编

号 1-9 用于保存被删去的正文, 字母名缓冲区 a-z 供用户存放自定

义的正文

Q 从 vi 推出进入 ex 命令状态

R 替换字符串

S 替换整行

T 字符 向左查找字符

U 将当前行恢复至第一次修改前的状态

W 光标移至下一个字首

X 删除光标前的字符

Y 将当前行存入无名缓冲区, 前面加数字表示存入的行数, 也可用有

名缓冲区来保存, 以后可用命令 p 或 P 将其取出

ZZ 存盘退出 vi

a 光标后插入正文

b 光标回退至上一个字首

cw 替换当前字

c) 替换当前句子

dw 删除一个字

dd 删除一行

e 光标移到下一个字末

f 字符 在当前行向前查找字符

h 光标左移一格

i 在光标前插入正文

j 光标下移一行

k 光标上移一行

l 光标右移一格

m 字母 用字母标记当前行, 以后可用 ' 字母使光标移动到当前行,

(参看' 命令)

n 重复上次 / 或 ? 命令

o 在当前行下开辟一新行

p 将用户缓冲区内容放到光标位置(参看 P 命令)

r 替换当前字符

s 用一串字符替换当前字符

t 字符 光标移动至字符前

u 取消上次操作

w 光标移至下一字首

x 删除当前字符

yw 将当前字存入无名缓冲区, 前面可加 x, 表示存入名字为 x 的有名

缓冲区(x 为 a-z) , 也可加数字表示存入的字数, 以后可用 P 或 p 命

令取出

yy 将当前行存入无名缓冲区, 用法参看 yw

{ 光标移动至前一段开头

| 光标移至行首, 若前面加数字, 则移到数字指定行的行首

} 光标移至下一段开头

在: 提示符下, 常用命令如下:

: w 当前文件存盘

: w! 强制存盘

: w 文件 将内容写入指定文件

: w! 文件 强制写入指定文件

: x, y w 文件 将 x 至 y 行写入指定文件中

: r 文件 将文件读到光标位置

: r ! 命令 将系统命令的输出读到光标位置

: q 退出编辑

: q! 强制退出

: x 与命令 ZZ 相同

: e 文件名 编辑另一文件

: e ! 重新编辑文件, 放弃任何改变

: sh 执行 sh, 结束后回到编辑

: ! 命令 执行命令后回到编辑

: n 编辑下一文件

: n 文件表 重新定义待编辑文件表

: set 设置 vi 的选项, 例如 set nu 表示每行前显示行号, 在选项前

加 no 则表示清除该选项, 例如 set nonu 表示每行前不显示行

号, 下面是一些常用的选项:

ai 自动缩进

aw 编辑下一文件前自动存盘

ic 查找字符串时不区分大小写

nu 每行前显示行号

sm 输入) 及} 时显示与之配对的( 或 {

slow 插入时延迟屏幕刷新

ws 使查找能绕过文件尾从头进行

wa 写文件之前不作对文件的检查

=================================================================

vi(Visual) 是以视觉为导向的全屏幕编辑器、 共分为三种方式(mode):

command 方式:

任何输入都会作为编辑命令, 而不会出现在屏幕上, 若输入错误则有“岬” 的声音; 任何输入

都引起立即反映

insert 方式:

任何输入的数据都置于编辑寄存器。 在 command 方式下输入( I,a,A 等) , 可进入 insert 方式, insert 方式下按 ESC,

可跳回 command 方式。

escape 方式:

以“ : ” 或者“/” 为前导的指令, 出现在屏幕的最下一行, 任何输入都被当成特别指令。

进入 vi( 在系统提示符下面输入以下指令) :

vi 进入 vi 而不读入任何文件

vi filename 进入 vi 并读入指定名称的文件( 新、 旧文件均可)。

vi +n filename 进入 vi 并且由文件的第几行开始。

vi +filename 进入 vi 并且由文件的最后一行开始。

vi + /word filename 进入 vi 并且由文件的 word 这个字开始。

vi filename(s) 进入 vi 并且将各指定文件列入名单内 , 第一个文件先读入。

vedit 进入 vi 并且在输入方式时会在状态行显示“INSERT MODE"。

编辑数个文件(利用 vi filename(s)) 进入 vi 后)

:args 显示编辑名单中的各个文件名

:n 读入编辑名单中的下一个文件

:rew 读入编辑名单中的第一个文件

:e# 读入编辑名单内的前一个文件

:e file 读入另一个文件进 vi(此文件可不在编辑名单内 ) , 若原文件经修改还没有存档, 则

应先以: w 存档。

:e! file 强迫读入另一个文件进入 vi, 原文件不作存档动作。

存储及退出 vi

:w filename 存入指定文件, 但未退出 vi(若未指定文件名则为当前工作的文件名 )。

:wq 或者 :x 或者 zz 存文件, 并且退出 vi.

:q 不作任何修改并退出 vi。

:q! 放弃任何修改并退出 vi。

:!command 暂时退出 vi 并执行 shell 指令, 执行完毕后再回到 vi。

:sh 暂时退出 vi 到系统下, 结束时按 Ctrl + d 则回到 vi。

加数据指令

i 在关标位置开始插入字符, 结束时候按 ESC 键。

I 在光标所在行的最前面开始加字, 结束时按 ESC 键。

a 在光标位置后开始加字, 结束时按 ESC 键。

A 在光标所在行的最后面开始加字, 结束时按 ESC 键。

o 在光标下加一空白行并开始加字, 结束时按 ESC 键。

O 在光标上加一空白行并开始加字, 结束时按 ESC 键。

!command 执行 shell 指令, 并把结果加在光标所在行的下一行。

删除指令

nx 删除由光标位置起始的 n 个字符( 含光标位置, 按一个 x 表示删除光标所在的字符)

nX 删除由光标位置起始的 n 个字符( 不含光标位置)。

ndw 删除光标位置其实的 n 个字符组( word) 。

d0 将行的开始到光标位置的字符全部删除。

d$ 或 D 将光标位置起始到行尾的字符全部删除。

ndd 将光标位置起始的 n 行(整行) 删除(dd 表示删除光标所在行)。

:start,endd 删除文件的第 start 到 end 行。

关标移动

0 移到一行的开始

$ 移到一行的最后

[ 移到文件开始位置

] 移到文件结束位置

nh 往左移 n 位

nl 或者 spacebar 往右移 n 位

nk 向上移 n 行

n+ 向上移 n 行, 光标在该行的起始

ni 向下移 n 行

n- 向下移 n 行, 光标在该行的起始

H 移到屏幕的左上角

M 移到屏幕的中间行开头

L 移到屏幕的最后一行

G 移到文件的最后一行

nG 或者:n 移到文件的第 n 行

nw 右移 n 个字组, 标点符号属于字组

nW 右移 n 个字组, 标点符号不属于字组

nb 左移 n 个字组, 标点符号属于字组

nB 左移 n 个字组, 标点符号不属于字组

Ctrl + u 屏幕上卷半个菜单

Ctrl + d 屏幕下卷半个菜单

Ctrl + b 屏幕上卷一个菜单

Ctrl + F 屏幕下卷一个菜单

修改指令

r 修改光标文件的字符

R 从光标位置开始修改, 结束时按 ESC 键

new 更改 n 组字符, 结束时按 ESC 键

ncc 从光标所在位置开始更改 n 行, 结束时按 ESC 键

重排各行长度

i 并按 Enter 将该行由光标所在处断开, 并进入 insert 方式

J 把下一行的数据连接到本行之后

寻找指令

/text 从光标位置往下找字串 text

?text 从光标位置往上找字串 text

n 继续找下一个字串( 在输入上面的寻找指令之后使用)

寻找并且取代指令

:getxt1/s/ /text2/options 将各行的 text1 替换为 text2

option=g 表示文件中所有的 text1 均被取代, 若未输入任何 option, 则只有 各行中的第一

个出现的 text1 被取代

option=go 在屏幕显示各取代的行

option=gc 在每个字串取代之前要求确认

Start,endgtext1/s/ / text2/options 同上, 只寻找并取代第 start~end 行。

或:Start,ends/text1/text2/options

复制及移动文件

:first,last co dest 将 first 到 last 行的数据复制到目标行(dest) 下面

:Start,end m dest 将 start 到 end 行的数据移动到目标行( dest) 下。

:r filename 将指定文件的内容读入光标所在行下。

nY 将光标所在位置开始的 n 行数据暂存

p 复制暂存数据在光标的下一行

P 复制暂存数据在光标的上一行

其他命令

. 重复前一指令

u 取消前一指令

Ctrl + l 刷新屏幕显示

:set number 显示文件的行号, 但不会存文件

:set nonumber 解除行号显示

:set ai 设置每行起始位置(以光标当前位置为起始)

:set noai 取消行起始位置设定

:f 或<Ctrl> + g 告诉用户有关现行编辑文件的数据。

================================================================

Last line mode:

/exp Go forward to exp

?exp Go backward to exp

:w Write buffer to disk

:w newfile Write buffer to newfile

:w! file Write Absolutely

:q Quit editor

:q! Quit,discarding buffer

:wq Write buffer and quit

:x Write if needed & quit

:f Edit & file status

:r Read file into buffer

:r file Read named file in

:e (Re)edit file

:e! (Re)edit,discard file in

:e file Edit nameed file

:3,8d Delete lines 3-8

:4,9m 12 Move lines 4-9 to 12

:2,5t 13 Copy lines 2-5 to 13

:5,9w file Write lines 5-9 to file

:s/old/new/ Current line,sub first "old" w/ "new"

:s/old/new/g Current line,sub each "old" w/ "new"

:3,9s/old/new Lines 3-9,sub first "old" w/ "new"

:%s/old/new All lines,sub first "old" w/ "new"

: %s/old/new/g All lines,sub each "old" w/ "new"

:s/pat./new A . matches any charcter

:s/pat*/new A * matches 0 or more "t"s

:s/pa[0-9aeioA-Z]/new selection set or range

:s/pa[^aeiou]/new match any non-vowel

:s/^pat/new anchor "par" to beginning of line

:s/pats/new anchor "par" to end of line

:s/old/& and new/ restoe matched pattern on sub

:%s/./ &/ indenta whoie file

:set nu Display line numbers

:set nonu Turn off option

:set all Show all settings

:set list Try to display invisible chars

:set wm=5 Wrap lines 5 sp from R margin

Command mode:

<- | ->

hljk Cursor movement

G Goto last file line

3G Goto line 3

0 Goto line start

$ Goto line end

% Goto matching brace/paren

H Goto screen top

M Goto screen middle

L Goto screen bottom

w Go forward 1 word

3w Go forward 3 word

b Go back 1 word

3b Go back 3 word

n Repeat previous search

N Reverse previous search

x Delete one character

dw Delete one word

dd Delete one line

D Delete to end of line

d0 Delete to beginning of line

dG Delete to end of file

4dd Delete 4 lines

u Undo last change

. Do last chang

Y Yank a copy of a line

5Y Yank a copy of 5 lines

P Put below cursor

p Put above cursor

J Join next line to current

4J Join 4 lines to current

>> Shift a line right

3>> Shift 3 lines right

^d 1/2 scroll forward

^u 1/2 scroll backwards

^f Scroll forward

^b Scroll backwards

n Repeat previous search

N Reverse previous search

ZZ Write if needed & quit vi

Insert mode:

a Append after cursor

A Append at line end

cw Change a word

3cw Change 3 words

C Change line

i Insert before cursor

5i Insert at 5 times

I Insert at beginning of line

o Open a linebelow cursor

O Open a line above cursor

r Replace one character

R Replace/type-cver a line

s Substitute a character

S Substitue a lin
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: