[转帖]vim常用技巧

vim,常用,技巧 · 浏览次数 : 0

小编点评

**VIM 工作模式** * **i.vim 工作模式:** 按 `i` 键进入插入模式,可以使用 `h`、`j`、`k`、`l` 和 `$` 等键在光标所在处插入字符。 * **删除命令:** 使用 `x`、`nx`、`dd` 和 `ndd` 等命令删除光标所在处字符、删除光标所在处后 n 个字符、删除光标所在行 n 行和删除从光标所在处到行尾的内容等。 * **复制和剪切:** 使用 `yy`、`Y` 和 `p` 等命令复制当前行、复制当前行以下 n 个字符和剪切当前行以下 n 个字符。 * **替换和取消命令:** 使用 `r` 和 `u` 命令进行替换和取消操作。 * **搜索和替换:** 使用 `/` 和 `string` 命令进行前向和后向搜索和替换。 * **保存和退出:** 使用 `w` 和 `q!` 命令保存修改并退出或强制打开不保存的修改。 * **重做和回复:** 使用 `u` 和 `redo` 命令进行重做和回复操作。 * **进入到编辑模式并插入:** 使用 `a` 和 `A` 等键在光表后插入或在第一行结尾插入字符等。 * **多个文件的编辑:** 使用 `next` 和 `previous` 命令编辑多个文件。 * **强制编辑:** 使用 `wnext` 命令强制编辑下个文件,如果更改了第一个文件,则强制编辑上个文件。 * **保存文件,编辑下一个:** 使用 `args` 命令保存文件并编辑下一个文件。 * **查找目前正在编辑的文件名:** 使用 `previous` 命令查找目前正在编辑的文件名。

正文

https://www.cnblogs.com/ryanlamp/p/13411618.html

 

一.vim工作模式:

 

 

二.常用命令:

1.定位命令

h、方向左键:左移一个字符

j、方向下键:下移一行

k、方向上键:上移一行

l、方向右键: 右移一个字符

$:移至行尾

0:移至行首

H:移至屏幕上端

M:移至屏幕中央

L:移至屏幕下端

gg:到第一行

G(shift+g):移到最后一行

:set nu 设置行号

:set nonu 取消行号

nG:到第n行

:n 到第n行

w 跳转到下个词首

b 跳转到下个词尾

CTRL-f :跳到下一页 (page down)
CTRL-b :跳到上一页 (page up)

 

2.删除命令

x 删除光标所在处字符

nx 删除光标所在处后n个字符

X 删除光标前的字符

dd 删除光标所在行

ndd 删除n行

dG 删除光标所在行到末尾的内容

D 删除从光标所在处到行尾

:n1,n2d 删除指定范围的行

 

3.复制和剪切

yy、Y 复制当前行

nyy、nY 复制当前行以下n行

dd 剪切当前行

ndd 剪切当前行以下n行

p、P 粘贴在当前光标所在行下或行上

 

4.替换和取消命令

r 取代光标所在字符串

R 从光标所在处开始替换字符,按ESC结束

u 取消上一步操作

 

5.搜索和替换命令

/string 向前搜索指定字符串 (搜索时忽略大小写 :set ic,  搜索时忽略大小写 :set noic)

n 搜索指定字符串的下一个出现位置

N(shift+n) 搜索指定字符串的上一个出现位置

:%s/old/new/g 全文替换指定字符串

:n1,n2s/old/new/g 在一定范围内替换指定字符串

 

6.保存和退出命令

:w 保存修改

:w new_filename 另存为指定文件

:wq 保存修改并退出

ZZ 快捷键,保存修改并退出

:q! 不保存修改退出

:wq! 保存修改并退出

:e filename -> 打开一个文件名为filename的文件 (open file to edit)

:e! filename -> 强制打开一个文件,所有未保存的东西会丢失 (force open, drop dirty buffer)

:saveas filename -> 另存为 filename (save file as filename)

 

7.重做和回复
u -> undo
CTRL-r -> redo
vim的undo是树结构的,你可以回到这个结构中的任何地方
:undo 2 -> undo 到结构的2层 (undo to tree 2)
:undolist -> 显示所有的undo列表 (show undo list)
:earlier 10s -> undo到10秒前的编辑 (undo to 10 seconds ago)
:earlier 10h -> undo到10小时前的编辑 (back to 10 hours ago)
:earlier 1m -> undo到1分钟前 (back to 1 minutes ago)

 

8.进入到编辑模式并插入

a  在光表后插入 (append after cursor)
A  在一行的结尾插入 (append at end of the line)
i  在光标前插入 (insert before cursor)
I  在第一个非空白字符前插入 (insert before first non-blank)
o  光标下面插入一个新行 (open line below)
O  光标上面插入一个新行 (open line above)

 

9.多个文件的编辑 

vim可以编辑多个文件,例如
vim a.txt b.txt c.txt 就打开了3个文件
:next  编辑下一个文件 (next file in buffer)
:next!   强制编辑下个文件,这里指如果更改了第一个文件 (force to next file in buffer if current buffer changed)
:wnext   保存文件,编辑下一个 (save the file and goto next)
:args  查找目前正在编辑的文件名 (find out which buffer is editing now)
:previous   编辑上个文件 (previous buffer)
:previous!    强制编辑上个文件,同 :next! (force to previous buffer, same as :next!)
:last    编辑最后一个文件 (last buffer)
:first    编辑最前面的文件 (first buffer)

 

10.其他常用

.  重复上次的指令

:history 查看命令历史记录

:pwd 显示vim当前文件路径

:set encoding=utf8 以utf-8编码格式打开

 

与[转帖]vim常用技巧相似的内容:

[转帖]vim常用技巧

https://www.cnblogs.com/ryanlamp/p/13411618.html 一.vim工作模式: 二.常用命令: 1.定位命令 h、方向左键:左移一个字符 j、方向下键:下移一行 k、方向上键:上移一行 l、方向右键: 右移一个字符 $:移至行尾 0:移至行首 H:移至屏幕上端

[转帖]整理常用的 vim 命令

vim 是一款功能强大的文本编辑器,它是Linux下常用的编辑器之一,对于熟练掌握了 vim 的人来说,用它编辑文件,方便又快捷,能极大的提高工作效率 vim 功能强大,对应的命令也非常的多,对于初学者来说,看到这么多的命令容易打退堂鼓,想当初,自己刚接触vim的时候,由于不熟悉vim,每一个命令都

[转帖]Linux—vi/vim全局替换

https://www.jianshu.com/p/4daa5dbc7dd5 vim全局替换 在linux系统中编辑文件或者配置时,常常会用到全局替换功能。 语法格式 :%s/oldWords/newWords/g其中,oldWords为替换前的值;newWords为替换后的新值;示例将key1替换

[转帖]Vim里面显示TAB键

http://www.ekangw.net/a/diannaojiqiao/2022/0916/188768.html 1、文件中有 TAB 键的时候,你是看不见的。要把它显示出来:C代码 :set list 现在 TAB 键显示为 ^I,而 $显示在每行的结尾,以便你能找到可能会被你忽略的空白字符

[转帖]【Vim】Vim分屏基本操作

https://www.cnblogs.com/sunbines/p/15600185.html 目录 Vim命令模式分屏 分屏屏间光标移动 分屏的移动 关闭分屏 参考资料 正文 回到顶部 Vim命令模式分屏 1. 垂直分屏 :vs [file] :vs 将当前文件垂直分屏:vs file 创建新文

[转帖]【VIM】多行缩进空格与删除

向前或向后缩进一个TAB 按ctrl + v组合键进入Visual Line模式,可使用方向键选择多行; 按<或>,进行向前或向后缩进tab。 缩进n个TAB,按n+<或> 多行缩进n个空格 向前缩进,实则是使用Visual Block模式删除多余空格以达到向前缩进的效果。 按ctrl + v组合键

[转帖]把VIM打造成一个真正的IDE(1)

http://www.vimer.cn/2009/10/15/ba-vimda-zao-cheng-yi-ge-zhen-zheng-de-ide-1/ 这里所说的IDE主要是指C/C++开发,但是由于笔者之前也搞java和c#开发,所以对这两种语言也会有所兼顾。 这个话题可能要分好几篇文章来写了,

[转帖]把VIM打造成一个真正的IDE(2)

作者是 Dante 发布于 2009年10月17日 in Vim. OK,上一篇文章,我们已经配置好了一个可以正常使用的VIM,那么在我们真正来到程序员的VIM世界之前,希望你能在VIM里面再多加下面几个配置。 set go= "无菜单、工具栏 对,让我真正抛弃鼠标,进入美妙的VIM之旅吧! 首先说

[转帖]让vim显示空格,tab字符,及vim多行注释

http://t.zoukankan.com/jjxhp-p-10667934.html 1、显示 TAB 键 文件中有 TAB 键的时候,你是看不见的。要把它显示出来: :set list 现在 TAB 键显示为 ^I,而 $显示在每行的结尾,以便你能找到可能会被你忽略的空白字符在哪里 这样做的一

[转帖]Linux—vi/vim批量注释及取消注释

https://www.jianshu.com/p/45c252e9d2b6 应用场景 在开发场景中,经常遇到对一些配置文件进行注释,当然如果确定不用的时候我们可以通过vim中的D命令进行删除。当需要对配置文件中的一些配置进行批量注释#的时候,我们可以通过下面的方式进行。 语法格式 批量注释 :fr