小楼一夜听春雨 / Linux(fedora)

VIM常见命令总结

2013-06-03 posted in [Linux(fedora)]

VIM常见命令总结

三种基本模式

VIM常用模式有4中:Normal Mode、Insert mode、Visaul Mode和Command-line Mode.

1.Normal Mode -> Insert Mode

i   在光标位置插入
a   在光标的前插入
I   在光标所在行第一个飞空格字符处插入
A   在光标搜在行的最后一个字符处插入
o   在光标所在行的上一行出插入
O   在光标所在行的上一行出插入
r   替换光标处的字符
R   持续替换光标处的字符,直到按下ESC

2.Normal Mode -> Command-line Mode

:w      写入文件
:q      退出VIM
:wq!    强制写入退出
:w filename     另存为filename
:n1,n2 filename 将n1行到n2行的数据另存为filename
:x      文件更改,则保持退出;无更改,直接退出
/ <word>    光标处向下搜索关键字
? <word>    光标处向上搜索关键字

3.Insert Mode -> Normal Mode

ESC

4.Insert Mode -> Visaul Mode

v
V
Ctrl+v

常见光标移动按键

1.光标字符操作

j向下
k向上
h向左
i向右
$光标移动到行尾
o光标移动到行首
^光标移动到行首第一个非空白字符

2.光标词操作

w光标移动到后一个词首
W光标移动到后一个词首忽略标点符号
e光标移动到后一个词的词尾
E光标移动到后一个词的词尾忽略标志符号
b光标移动到前一个词首
B光标移动到前一个词的词首忽略标点符号

3.光标句操作

)光标移动到后一句的句首
(光标移动到前一句的句首
%配合(和)使用,寻找相匹配的另一半

4.光标行操作

G 光标移动到文档的最后一行的第一个非空白字符
nG 光标移动到文档的第n行,相当于”:n”
gg 光标移动到文档的第1行的第一个非空白字符,相当于”1G”,也相当于”:1″
<N> 光标向下移动N行

5.光标段操作

} 光标移动到下一段的段首
{ 光标移动到上一段的段首
% 配合“(”和“)”使用,寻找相匹配的另一半

6.光标页操作

Ctrl+f 向下翻页(Pagedown)
Ctrl+b 向上翻页(Pageup)
Ctrl+d 向下翻半页
Ctrl+u 向上翻半页
H 光标移动到目前显示页的第一行
M 光标移动到目前显示页的中间行
L 光标移动到目前显示页的最后一行

7.光标自由操作

Ctrl+o 回到光标的上一位置

常用编辑操作按键

1.删除操作(delete)

dd 删除光标所在行
ndd 删除从光标所在行开始,向下的n行
d1G 删除从光标所在行开始,到第一行的所有行
dG 删除从光标所在行开始,到最后一行的所有行
d$ 删除从光标所在位置,到行尾的所有字符
d0 删除从光标所在位置,到行首的所有字符

2.复制操作(yank)

yy 复制光标所在行
nyy 复制从光标所在行开始,向下的n行
y1G 复制从光标所在行开始,到第一行的所有行
yG 复制从光标所在行开始,到最后一行的所有行
y$ 复制从光标所在位置,到行尾的所有字符
y0 复制从光标所在位置,到行首的所有字符

3.粘贴操作(paste)

p 小写字母p,粘贴剪贴板中的数据,从光标所在行的下一行开始
P 大写字母P,粘贴剪贴板中的数据,从光标所在行的上一行开始

4.撤销与重做操作(undo,redo)

u (Undo)撤销上一个操作
Ctrl+r (Redo)重做上一个操作

5.重复操作

. 重复上一操作

6.替换操作(replace)

r 替换光标所在处字符
R 进入替换模式,直至按ESC退出
cc 替换光标所在行
cw 替换光标所在的英文单词
~ 转换大小写

7.排版操作

:le<ft> 光标所在行左对齐
:ri<ght> 光标所在行右对齐
:ce<nter> 光标所在行居中

常用多缓冲区操作按键

1.多文件编辑模式

  • argument list模式,就是在打开vim编辑器时,携带多个文件路径参数。
  • buffer list模式,就是在进入vim编辑器后,打开多个缓冲区进行编辑。

2.单一缓冲区打开多个文件

:files 显示目前打开了哪些文件
:n 切换到下一个缓冲区内容
:N 切换到上一个缓冲区内容
:2n 切换到下下个缓冲区内容
:bn 下一个缓冲区内容(buffer next)
:bp 上一个缓冲区内容(buffer previous)

3.多个缓冲区打开多个文件

:sp [filename] 打开一个新的缓冲区,如果有filename则内容为该文件,否则为当前文件
Ctrl+w n 新建一个缓冲区
Ctrl+w q 退出光标所在的缓冲区
Ctrl+w j 光标移动到下一缓冲区
Ctrl+w k 光标移动到上一缓冲区
Ctrl+w l 光标移动到右一缓冲区
Ctrl+w h 光标移动到左一缓冲区
Ctrl+w v 左右切割窗口新建缓冲区
Ctrl+w s 上下切割窗口新建缓冲区
Ctrl+w o 使光标所在缓冲区最大化,其他缓冲区隐藏

常见分屏

1.终端中分屏打开多个文件

vim -on filename1 filename2     水平分屏
vim -On filename1 filename2     垂直分屏

2.VIM中命令行分屏

:sp     水平分屏
:vsp    垂直分屏

3.分屏之间命令

ctrl+w<dir>     dir为方向hjkl后 ←↓↑→
ctrl+w<+>或<->      增加分屏大小
ctrl+w_或ctrl+w|    最大化尺寸(<C-w>| 垂直分屏)

常用搜索与书签操作快捷键

  1. 搜索字符串

     /string 向下搜索字符串“string”
     ?string 向上搜索字符串“string” 
    
  2. 重复上次搜索

     n 根据上次搜索条件找到下一个匹配的字符串
     N 根据上次搜索条件找到上一个匹配的字符串 
    
  3. 搜索单词

     * 向下搜索光标所在处的单词(完全匹配)
     # 向上搜索光标所在处的单词(完全匹配)
     g* 向下搜索光标所在处的单词(部分匹配)
     g# 向上搜索光标所在处的单词(部分匹配) 
    
  4. 标记书签(mark)

     ma a为小写字母,为光标所在处设定文档书签a
     mA A为大写字母,为光标所在处设定全局书签A 
    
  5. 使用书签(mark)

     `a 到文档书签a处,Tab键上方
     'a 到文档书签a所在行行首处,Enter键左边
     `A 到全局书签A处,Tab键上方
     'A 到全局书签A所在行行首处,Enter键左边
     `n 如果n=0,缓冲区将打开上一次的文档,且光标在上次编辑最后的位置,1-9以此类推
     'n 如果n=0,缓冲区将打开上一次的文档,且光标在上次编辑最后的位置所在行的行首,1-9以此类推 
    
  6. 查看书签列表

    :marks 查看当前所有书签

关于VIM加密

1.加密文件

vim -x filename
Vim提示出入密码:
    Enter entryption key:****
    Enter same key again:****

当打开filename时:
    Need encryption key for "main.cpp"
    Enter encryption key:****

2.解除加密与重设密码

打开你已经加密的文件,然后输入:

:set key=

这样,你的密码就被设置为空了,今后进入就不再需要输入密码了。而如果你向重设密码的话,你可以输入:

:X

注意是个大写字母X。这时vim会提示你,只要反复输入两次新的密码就可以了:

Enter entryption key: *****
Enter sanme key again: *****

VIM替换技巧

1.简单替换表达式

替换命令可以在全文中用一个单词替换另一个单词

:%s/one/1/g  将one替换为1

如果替换“thirtyfour”中的four为4

:%s/<four/4/g

如果是像”fourty”中替换

:%s<four>/4/g

如果需要之对注释中替换

:%s<four>/4/gc

2.删除多余空格

要删除这些每行后面多余的空格,可以执行如下命令:

:%s/s+$//

命令前面指明范围是“%”,所以这会作用于整个文件。”substitute” 命令的匹配模式是“s+$”。这表示行末($)前的一个或者多个(+)空格(s)。替换命令的“to” 部分是空的:”//”。这样就会删除那些匹配的空白字符。

3.匹配重复性模式

星号项“*”规定在它前面的项可以重复任意次。因此:

/a*

匹配“a”,”aa”,”aaa”,等等。但也匹配“” (空字串),因为零次也包含在内。星号“” 仅仅应用于那个紧邻在它前面的项。因此“ab” 匹配“a”,”ab”,”abb”,”abbb”,等等。如要多次重复整个字符串,那么该字符串必须被组成一个项。组成一项的方法就是在它前面加“(”,后面加“)”。因此这个命令:

/(ab)*

匹配:“ab”,”abab”,”ababab”,等等。而且也匹配“”。

要避免匹配空字串,使用“+”。这表示前面一项可以被匹配一次或多次。

/ab+

匹配“ab”,”abb”,”abbb”,等等。它不匹配 后面没有跟随“b” 的“a”。

要匹配一个可选项,用“=”。 例如:

/folders=

匹配“folder” 和“folders”。

4.指定重复次数

要匹配某一项的特定次数重复,使用“{n,m}” 这样的形式。其中“n” 和“m” 都是数字。在它前面的那个项将被重复“n” 到“m” 次 ( inclusive 包含“n” 和“m”)。例如:
/ab{3,5}

匹配“abbb”,”abbbb” 以及“abbbbb”。

当“n” 省略时,被默认为零。当“m” 省略时,被默认为无限大。当“,m” 省略时,就表示重复正好“n” 次。例如:

模式 匹配次数 {,4} 0,1,2,3 或 4 {3,} 3,4,5,等等 {0,1} 0 或 1,同 = {0,} 0 或 更多,同 * {1,} 1 或 更多,同 + {3} 3

5.多选一匹配

在一个查找模式中,”或” 运算符是“ ”。例如:
/foo|bar

这个命令匹配了“foo” 或“bar”。更多的抉择可以连在后面:

/one|two|three

匹配“one”,”two” 或“three”。

如要匹配其多次重复,那么整个抉择结构须置于“(” 和“)” 之间:

/(foo|bar)+

这个命令匹配“foo”,”foobar”,”foofoo”,”barfoobar”,等等。

再举个例子:

/end(if|while|for)

这个命令匹配“endif”,”endwhile” 和“endfor”。

Fedora安装搜狗输入法

2013-05-18 posted in [Linux(fedora)]