成就vim高手(一)--vim命令

VIM 命令

1. 滚屏

< Ctrl+u >将屏幕向前(文件头方向)翻滚半屏;

< Ctrl+d >将屏幕向后(文件尾方向)翻滚半屏。

可以在这两个命令之前加上一个数字n,则屏幕向前或向后翻滚n行。

并且这个值被系统记住,以后再用< Ctrl+u >和< Ctrl+d >命令滚屏时,还滚相应的行数。

2. 分页命令

< Ctrl+f >将屏幕向文件尾方向翻滚一整屏(即一页);

< Ctrl+b >将屏幕向文件首方向翻滚一整屏(即一页)。

同样也可以在这两个命令之前加上一个数字n,则屏幕向前或向后移动n页。

3. 状态命令

< Ctrl+G >命令显示在vi状态行上的vi状态信息。

包括正在编辑的文件名、是否修改过、当前行号、文件的行数以及光标之前的行占整个文件的百分比。

4. 附加命令

(1). 跳转命令

^命令

跳转到行首

$命令

跳转到行尾

b(begin)命令

跳转到当前单词的前面

e(end)命令

跳转到当前单词的后面

number%命令

跳转到number%处, 例如跳转到20%, 键入20%即可

%命令

匹配括号

(2). 插入命令

a命令

该命令用于在光标当前所在位置之后追加新文本。新输入的文本放在光标之后,在光标后的原文本将相应地向后移动。光标可在一行的任何位置。

A命令

该命令与a命令不同的是,A命令将把光标挪到所在行的行尾,从那里开始插入新文本。当输入A命令后,光标自动移到该行的行尾。

a和A命令是把文本插入到行尾的唯一方法。

o命令

该命令将在光标所在行的下面新开一行,并将光标置于该行的行首,等待输入文本。

要注意,当使用<Backspace>删除字符时只能删除从插入模式开始的位置以后的字符,对于以前的字符不起作用。

O命令

与o命令相反,O命令是在光标所在行的上面插入一行,并将光标置于该行的行首,等待输入文本。

(3). 删除命令

在编辑文本时,经常需要删除一些不需要的文本,我们可以用<Backspace>键将输错或不需要的文本删除,但此时有一个限制就是当删到行头之后,再想删上面那行的内容是不可能的。

在命令模式下,Vi提供了许多删除命令。这些命令大多是以d开头的。常用的有:

x命令

删除光标处的字符。

若在x之前加上一个数字n,则删除从光标所在位置开始向右的n个字符。

X命令

删除光标前面的那个字符。

若在X之前加上一个数字n,则删除从光标前面那个字符开始向左的n个字符。

显然,这两个命令是删除少量字符的快捷方法。

dd命令

剪切(删除)光标所在的整行。

在dd前可加上一个数字n,表示删除当前行及其后n-1行的内容。

D或d$命令

删除从光标所在处开始到行尾的内容。

d0命令

删除从光标前一个字符开始到行首的内容。

Dw命令

删除一个单词。

若光标处在某个词的中间,则从光标所在位置开始删至词尾。同dd命令一样,可在dw之前加一个数字n,表示删除n个指定的单词。

5. 复制粘贴

排版命令: gg=G

(1)选择命令

    按v进入可视模式(v按字符选择,V按行选择)

    1). 用j、k控制选中的行

2). 按下ap选取一段('a' 'p'aragraph),按下~翻转这段文字的大小写。如果你想取消选取,按下<Esc>即可。

(3). 按下aw选取一个单词('a' 'w'ord)

(4). 按下ab 选取一块文本('a' 'b'lock)

(5). 按下as 选取一个句子(‘a’ sentence)

(2). 复制命令

dd命令

剪切当前行。

yy命令

拷贝当前行。

cc命令

剪切当前行并且进入插入模式。

D命令

剪切从光标位置到行尾到剪贴板。

Y命令

拷贝当前行。

C命令

和 D 类似,最后进入插入模式。

x命令

剪切当前字符到剪贴板。

s命令

剪切当前字符到剪贴板,最后进入插入模式。

(3). 粘贴命令

p命令

    粘贴剪切板中的字符

(4)寄存器

    如果你要从一个文件中复制出好几块独立的文本到另一个文件中去,单用上面的方法就不得不多次切换文件,存盘。

    将这些独立的文本存到一个寄存器中去可以避免这种繁琐的切换。

复制时用["]+[寄存器名(字母寄存器是a-z)]+[y],例如:"ay,就是将当前选中的内容拷贝到a寄存器.

粘贴是用用["]+[寄存器名(字母寄存器是a-z)]+[p],例如:"ap,就是将a寄存器中的内容拷贝到当前位置

6. 光标控制

gg命令

    跳到文件的首行

G命令

    跳到文件的最后一行

6. 编辑多个文件

edit命令

先保存正在编辑的文件,用[:edit][filename]命令打开文件filename。

saveas命令

将当前正在编辑的文件另存为一个文件。

args命令

args *.*编辑当前目录所有文件

argdo[正则表达式] [ge] |update 用正则表达式去匹配所有文件,替换,然后保存所有文件

7. 分割窗口

split命令

将当前窗口分成上下两个窗口。

两次[CTRL+W]可以切换窗口。

vsplit命令

将当前窗口分成左右两个窗口。

两次[CTRL+W]可以切换窗口。

close 命令

关闭当前窗口。

only 命令

close all butthis(关闭除当前窗口以外的窗口)。

wall 命令

保存所有窗口打开的文件。

qall 命令

如果所有窗口打开的文件都已经保存,退出,如果有未保存的文件,跳转到对应的窗口中。

wqall 命令

保存并退出所有窗口。

8.折行

zc命令

折叠文本

zo命令

打开折叠文本

zr[R]命令

打开多层嵌套的折行

zm[M]命令

关闭多层嵌套的折行

]c 命令

向前定位不同之处。

[c 命令

向后定位不同之处。

diffupdate 命令

消除差异。

9. 文本替换

(%)substitute(s)命令

用法

:(%)s/from/to/[flags(g)]将from替换成to。g表示global。

\<用来指示一个单词的起始位置。

\>用来指示一个单词的结束位置。

10. Shell命令

:read(r) !(cmd) 执行cmd并读取它的输出

:write(2) !(cmd)执行cmd并并把当前缓冲区的内容作为它的输入

:shell 样打开一个新的shell

 

11. 查找文件

:edit . 显示当前目录的内容

<Enter> 在当前窗口中打开文件

o 打开一个水平分隔的窗口显示文件

v 打开一个垂直分隔的窗口显示文件

t 在一个新标签页中打开文件

:cd dirtory 切换到dirtory目录

:pwd 显示当前工作目录

:lcd dirtory 切换到局部工作目录dirtory

pwd 当前工作目录

find filename 查找filename,并跳转到filename文件

gf 光标置于想要跳转的文件名上,按下gf即跳转到改文件。

[CTRL+W]f可以替代gf,不同的是前者把窗口分成了两个。

sfind 可以替代[CTRL+W]f,效果一样。

:buffers(:ls)列出缓冲区列表。

编辑缓冲区

buffer [number]

sbuffer [number]在新窗口打开

:bnext/bprevious/bfirst/blast

同理,sbnext/sbprevious/sbfirst/sblast

tabnew  filename 在新标签中编辑文件。

vertical sfind 垂直分割窗口查找文件

 

12. 快速键入

在Insert模式下可用的快捷键

<Ctrl-Home>到文件头

<PageUp> 向上滚屏

<Home> 到行首

<Shift-Left>向左移动一个word

<Ctrl-Left>向左移动一个word

<Shift-Right>向右移动一个word

<Ctrl-Right>向右移动一个word

<End> 到行尾

<PageDown>向下滚屏

<Ctrl-End>到文件尾


你可能感兴趣的:(工作,正则表达式,shell,cmd,vim,insert)