常用Vim指令介绍

打开文件跳至第5行

vim +5 file

打开并恢复上一次未正常退出的文件

vim -r file

显示文档名称,是否修改以及光标位置

ctrl+g
:f

将n1,n2行保存到新文件。

:n1,n2w filename

保存并退出

:x
ZZ
:wq

水平拆分窗口并浏览文件系统

:Sex

垂直拆分窗口并浏览文件系统。

:Vex

向前移动一个单词,光标停在下一个单词的开头

w

向后移动一个单词,光标停在下一个单词的开头

b

向前移动一节

{

向后移动一节

}

将光标移动到同一行的下一个c字符

fc

将光标移动到同一行上的前一个c字符。

Fc

跳转同行的下一个c字符,使用;查找下一个

fc
;

跳转同行的下一个c字符,使用;查找上一个

fc
,

移至该行的第一个非空白字符

^

移至行尾

$

移至文件头

gg

移动到文件末尾

G

向下滚动一个屏幕

Ctrl+f

向上滚动一个屏幕

Ctrl+b

将当前行移动到屏幕中心

zz

复制整行文本

yy

删除(剪切)1(n)行。

dd

在光标之后粘贴

p

跳至单词的下一个出现的地方

n

跳至单词的上一个出现的地方

N

将所有old出现的地方换成new

:%s/old/new/g

在垂直分割的多个窗口中编辑多个文件

vim -O filename filename2

在水平分割的多个窗口中编辑多个文件。

vim -o filename filename2

格式化代码

=

在光标处插入当前日期和时间

:r !date

其他Shell命令的输出可以插入到当前文档中。

:r !command

自动补全单词

Ctrl + n
Ctrl + p

改变光标处的大小写,也可以改变一个区域的大小写

~

跳转到局部定义的变量

gd

跳转到全局定义的变量

gD

跳转到上一个修改的地方

g;

跳转到下一个修改的地方

g,

跳到上一个功能块的开头,您需要使用单独的行{

[[

跳转到下一个功能块的开头需要一行{

]]

跳转到配对的{}, () or []的另一个括号位置

%

修改,剪切或复制括号里内容。

ci( 、 di( or yi(

修改,剪切或复制""里内容。

ci" 、 di" or yi"

Call the Shell and return vim with “exit”.
临时将vim打开的内容放到后台,去执行shell命令,回到vim,使用"exit"指令

!sh

光标处的数字+1

Ctrl + a

光标处的数字-1

Ctrl + x

打开光标所在单词的手册页

K

向下搜索光标处的单词

*

向上搜索光标处的单词

#

删除光标处的单词

daw

删除一个单词并开始插入

ciw

删除一行文本并进入插入模式

cc

执行j命令后,光标仅移动到屏幕上方的第5位,而不移动到屏幕的最后一行

:set so=5

删除光标字符并进入插入模式

s

删除光标位置周围的文本范围,然后进入插入模式

c

退出插入模式

Esc
Ctrl + [

跳转至屏幕中间

M

转换字符成为大写

gU

转换字符成为小写

gu

全选整个文件

ggvG

交换两个字符的位置

xp

交换两行的位置

ddp

将此语句添加到/ etc / vim / vimrc中以自动补全花括号。

imap {<CR> {}<ESC>i<CR><TAB><ESC>V<O<TAB> 

补全符号的另一半,将以下内容添加到/ etc / vim / vimrc中。

inoremap ( ()<Esc>i
inoremap [ []<Esc>i
autocmd Syntax html,vim inoremap < <lt>><Esc>i| inoremap > <c-r>=ClosePair('>')<CR>
inoremap ) <c-r>=ClosePair(')')<CR>
inoremap ] <c-r>=ClosePair(']')<CR>
inoremap " <c-r>=QuoteDelim('"')<CR>
inoremap ' <c-r>=QuoteDelim("'")<CR>

function ClosePair(char)
 if getline('.')[col('.') - 1] == a:char
 return "\<Right>"
 else
 return a:char
 endif
endf

function CloseBracket()
 if match(getline(line('.') + 1), '\s*}') < 0
 return "\<CR>}"
 else
 return "\<Esc>j0f}a"
 endif
endf

function QuoteDelim(char)
 let line = getline('.')
 let col = col('.')
 if line[col - 2] == "\\"
 return a:char
 elseif line[col - 1] == a:char
 return "\<Right>"
 else
 return a:char.a:char."\<Esc>i"
 endif
endf

转载请注明出处:http://www.wolfnx.com/2018/02/08/CommonVimInstruction

作者 : wolfnx
邮箱 : wolfnx@outlook.com
邮箱2 : lostnx@gmail.com

### Vim 编辑器常用操作指令及使用指南 Vim 编辑器是 Vi 的增强版本,具备更多功能且更易于使用,广泛应用于编程和配置文件编辑等场景。其核心优势在于轻量、灵活和高度可定制[^2]。掌握 Vim常用命令可以显著提高文本编辑效率。 #### 三种基本模式 Vim 编辑器有三种主要操作模式: - **普通模式(Normal Mode)**:用于执行命令,如移动光标、复制、粘贴等。 - **插入模式(Insert Mode)**:用于输入文本。 - **命令行模式(Command-line Mode)**:用于执行 ex 命令,例如保存、退出、搜索等[^2]。 #### 常用操作命令 以下是一些常用Vim 操作命令,适用于不同模式: ##### 普通模式常用命令 | 功能 | 命令 | |------|------| | 移动光标 | `h`(左)、`j`(下)、`k`(上)、`l`(右) | | 删除字符 | `x`(删除当前字符) | | 删除整行 | `dd`(删除当前行) | | 复制整行 | `yy`(复制当前行) | | 粘贴内容 | `p`(在光标后粘贴) | | 撤销操作 | `u` | | 重做操作 | `Ctrl + r` | | 进入插入模式 | `i`(在光标前插入)、`a`(在光标后插入) | ##### 命令行模式常用命令 在普通模式下按下 `:` 可进入命令行模式,执行如下命令: | 功能 | 命令 | |------|------| | 保存文件 | `:w` | | 退出编辑器 | `:q` | | 保存并退出 | `:wq` | | 强制退出(不保存) | `:q!` | | 替换文本 | `:s/old/new/`(替换当前行第一个匹配项) | | 替换全部匹配项 | `:g/old/s//new/` | | 设置行号显示 | `:set number` | | 取消行号显示 | `:set nonumber` | ##### 插入模式常用操作 在插入模式中,用户可以直接输入文本。按下 `Esc` 键可以退出插入模式,返回普通模式。 #### ex 命令使用指南 Vim 的 ex 命令主要用于命令行模式中,提供强大的文本处理能力。例如: - `:d` 删除当前行 - `:y` 复制当前行 - `:put` 粘贴已复制的内容 - `:s/old/new/g` 替换当前行所有匹配项 - `:g/pattern/d` 删除所有包含 pattern 的行 这些命令可以组合使用,实现复杂的文本编辑操作,提高编辑效率[^1]。 #### 示例:替换文件中所有“hello”为“world” ```vim :%s/hello/world/g ``` 该命令表示在整个文件范围内(`%`)查找“hello”并替换为“world”,`g` 表示全局替换。 #### 示例:保存并退出 Vim 编辑器 ```vim :wq ``` 该命令用于保存当前编辑内容并退出编辑器。 #### 示例:强制退出且不保存修改 ```vim :q! ``` 此命令用于放弃所有修改并退出编辑器。 #### 小技巧 - 使用 `v` 进入可视模式,可以选择文本进行操作。 - 使用 `.` 可以重复上一次的编辑操作。 - 使用 `/` 进入搜索模式,例如 `/error` 可以查找“error”字符串。 - 使用 `n` 和 `N` 在搜索结果中导航。 Vim 编辑器的强大之处在于其丰富的命令和灵活的操作方式。通过不断实践和探索这些命令,用户可以显著提升文本编辑效率,并适应不同的编辑需求[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值