天天看点

VIM tutor学习小结

VIM tutor学习小结

以下命令均在Normal模式下执行,如不确定当前模式,按下

<ESC>

回到Normal模式。

使用

ESC

撤销一个不想输入或部分完整的命令。

VIM的进入和退出

进入Vim编辑器(从命令行提示符):

vim filename

退出Vim编辑器:

<ESC>

:q!

(放弃所有改动)

      或者:

<ESC>

:wq

(保存改动)

移动光标

  ↑

  k

←h  l→(小写L)

   j

   ↓

撤销

u

:撤销最后执行的命令

U

:撤销对整行的修改

Ctrl

+

R

:撤销之前的撤销命令

删除类命令

删除光标所在位置字符:

x

d motion

d     – 删除操作符

motion   --操作符的操作对象

一个简短的动作列表:

w    – 从当前光标位置至下一个单词的起始处,不包括第一个字符

e    – 从当前光标位置至单词末尾,包括最后一个字符

$    – 从当前光标位置至当前行末

dd

:删除当前行

使用计数指定动作

在动作前输入数字n会使它重复n次

operator [number] motion

例如:

2w

:光标向前移动两个单词

3e

:光标向前移动到第三个单词末尾

:光标移至当前行行首

2dd

:删除当前行开始的两行

置入类命令

i

:在光标前插入文本

a

:在光标后插入文本

A

:在行末添加文本

y

:复制文本

yw

:复制光标处至词末

p

:粘贴文本于光标之后。如果文本是一整行,则至于当前行的下一行

o

:在光标下方打开新的一行

O

:在光标上方打开新的一行

替换类命令

r char

:将光标所在位置字符替换为char

r    – 替换操作符

char   – 要替换的字符

R

:连续替换多个字符

更改类命令

c [number] motion

动作参数同删除类命令。

定位及文件状态

Ctrl

+

g

:显示当前光标所在行位置和当前文件状态信息

G

:跳转到文件最后一行

gg

:跳转到文件第一行

nG

:跳转到第n行

:移动光标到行首

$

:移动光标到行末

e

:光标移动到单词末尾

b

:光标移动到词首

w

:光标移动到下一个单词词首

搜索类命令

/string

:向前查找string字符串

/string\c

:仅在一次查找时忽略大小写

?string

:向后查找string字符串

n

:同一方向上查找上一次的字符串

N

:相反方向查找上一次的字符串

Ctrl

+

O

:回退到之前位置,可通过重复按回退多步

Ctrl

+

I

:(大写i)跳转到较新的位置

:set ic

(or

:set ignorecase

):ignore case,搜索时设置忽略大小写

:set noic

(or

:set noignorecase

):禁用忽略大小写

:set is

(or

:set incsearch

):查找字符串时显示部分匹配

:set nois

(or

:set noincsearch

):禁用显示部分匹配

set hls

(or

:set hlsearch

):highlight,匹配项高亮显示

:nohlsearch

(or

:nohls

):取消高亮

配对括号查找

%

:配对括号(用于查找不配对的括号),光标应停留在"("、"["、"{"、")"、"]"、"}"处

替换命令

:s/old/new

:替换当前行第一个出现的

old

字符串为

new

:s/old/new/g

:替换该行中所有的

old

字符串为

new

:#,#s/old/new/g

:替换若干行中所有

old

字符串为

new

#

为首尾两行的行号

:%s/old/new/g

:替换文件中每一个匹配串

%s/old/new/gc

:替换文件中每一个匹配串,并对每一个匹配串提示是否进行替换

在VIM内部执行外部命令

:!cmd

:执行外部shell命令,

cmd

为命令名称

:w newfile

: 保存当前文件到newfile文件中

v

motion

operator

:按

v

进入可视模式,选择若干行进行操作

:r file

:在光标处插入file文件中的内容,file也可以是外部命令的输出(如:

:r !ls

?

?

?

?

?

拖延是病(つД`)ノ

上一篇: vim 笔记

继续阅读