VimTips
Zoran:
- vim有什么奇技淫巧?
ChatGPT:
- Vim 是一个功能强大且高度可定制的文本编辑器,有许多实用的技巧可以帮助您提高编辑效率。以下是一些 Vim 的实用技巧:
- 使用
.
来重复上一次的操作。例如,您可以删除一行(使用dd
),然后在其他地方使用.
来重复删除。 - 快速移动:
- 使用
w
向前移动一个词; - 使用
b
向后移动一个词; - 使用
{
和}
在段落之间跳转。
- 使用
gg
跳到文件的开头,使用G
跳到文件的结尾。 - 使用
%
在配对的括号、引号等之间跳转。 - 使用
:split
和:vsplit
在水平和垂直方向上分割窗口。使用Ctrl-w
加方向键在不同窗口之间切换。 - 使用
:grep
在多个文件中搜索文本,然后使用:cnext
和:cprev
在匹配项之间导航。 - 使用
:sort
对选中的文本进行排序。 - 使用
Vim
的宏功能录制一系列操作,然后在其他地方重放它们。使用q
加一个字母开始录制,使用q
停止录制,然后使用@
加相同字母重放。 - 使用
:buffers
查看当前打开的所有缓冲区。使用:buffer
加缓冲区号切换到指定的缓冲区。 - 在查找模式中,使用
\v
进入”非常魔法”模式,以便在正则表达式中减少转义字符的数量。 - 使用
ci"
、ci'
和ci(
等命令更改括号或引号之间的文本。例如,ci(
将删除圆括号内的文本并进入插入模式。 - 使用
:help
命令查找 Vim 的帮助文档。例如,:help :buffers
将显示关于:buffers
命令的帮助信息。 - 使用
Ctrl-p
和Ctrl-n
在命令和搜索模式中进行自动补全。
这只是 Vim 中众多技巧的一部分。随着您在 Vim 中的使用经验增加,您将学到更多有趣和实用的功能。不要害怕尝试新的东西,并花时间探索 Vim 的强大功能。
Zoran:
- 还有哪些技巧呢
ChatGPT:
- 除了之前提到的一些技巧外,这里还有一些其他实用的 Vim 技巧:
- 使用
:mksession
和:source
保存和恢复 Vim 会话,这样您就可以在需要时恢复工作状态。 - 使用
:retab
命令调整当前缓冲区中的制表符和空格,以适应您的偏好设置。 - 使用
:!
加一个外部命令在 Vim 中运行外部程序,例如:!ls
运行ls
命令。您还可以在命令模式下使用!!
将当前行替换为外部命令的输出。 - 在可视模式下,使用
<
和>
缩进和取消缩进选中的文本。 - 使用
:e .
快速浏览当前目录中的文件。在文件浏览器中,使用d
创建目录,R
重命名文件等。 - 使用
gv
重新选择上一次的可视模式选择。 - 使用
Ctrl-o
和Ctrl-i
在编辑位置的跳转历史中向后和向前导航。 - 使用
:tabnew
、:tabprev
、:tabnext
和:tabclose
等命令管理标签页。 - 使用
:registers
查看 Vim 中所有的寄存器内容。可以使用"{register}y
、"{register}p
等命令将文本复制到特定的寄存器中,或从寄存器中粘贴文本。 - 使用
:global
和:vglobal
命令在文件中查找并执行特定的操作。例如,:g/foo/d
删除包含foo
的所有行,:v/bar/d
删除不包含bar
的所有行。 - 使用
:norm
命令在多行上执行普通模式命令。例如,在可视模式下选择多行,然后输入:norm A;
,这将在每行的末尾添加分号。 - 使用
Ctrl-v
进入可视块模式,选择多列文本。这在编辑表格数据或同时修改多行代码时非常有用。
这些技巧涵盖了 Vim 的许多功能,但仍然只是冰山一角。不断地学习和实践将帮助您成为一个更高效的 Vim 用户。查看 Vim 的文档和在线社区也是学习新技巧的好方法。
Zoran:
- 还有哪些呢
ChatGPT:
- 这里有更多的 Vim 技巧供您参考:
- 使用
:%s/foo/bar/g
将全文中的foo
替换为bar
。在替换操作之前添加c
,如:%s/foo/bar/gc
来逐个确认是否进行替换。 - 使用
:earlier
和:later
命令在不同版本的文件内容之间切换。例如,:earlier 10m
会将文件内容回退到10分钟之前的状态。 - 使用
:diffsplit
或:vert diffsplit
与另一个文件进行比较。这将以水平或垂直分割窗口的方式显示文件差异。 - 在插入模式下,使用
Ctrl-r
将寄存器内容插入光标位置。 - 使用
:normal
执行普通模式命令。例如,:normal dd
会删除当前行。这在脚本或 Vim 配置文件中很有用。 - 使用
:set spell
开启拼写检查,]s
跳转到下一个拼写错误,[s
跳转到上一个拼写错误。使用zg
将单词添加到自定义词典。 - 使用
*
和#
在当前文件中搜索光标所在单词的下一个或上一个匹配项。 - 使用
:e#
或Ctrl-^
在当前编辑的两个文件之间切换。 - 使用
Ctrl-a
和Ctrl-x
在光标位置处增加或减小数字。 - 使用
:resize
和:vertical resize
调整当前窗口的大小。 - 使用
[(
和])
在同一级别的代码块之间跳转。 - 使用
:read
将外部命令的输出插入到当前文件中。例如,:read !date
插入当前日期。 - 使用
:abbreviate
定义输入缩写。例如,:abbreviate iab teh the
会将您键入的teh
自动更正为the
。 - 使用
vimtutor
命令学习 Vim 基本操作。这是一个互动教程,适合初学者。 - 使用
:checktime
检查当前编辑的文件是否在磁盘上有新的修改。这在多人协作编辑文件时很有用。
请继续探索 Vim 的强大功能,阅读官方文档和在线资源来进一步提高您的 Vim 技能。
Zoran:
- 还有吗
ChatGPT:
- 当然还有更多的 Vim 技巧可以分享给您:
- 使用
:argdo
,:bufdo
,:tabdo
,:windo
对所有参数、缓冲区、标签页或窗口执行相同的操作。例如,:argdo %s/foo/bar/g
将在所有参数中的文件中替换foo
为bar
。 - 使用
ga
查看光标下字符的 ASCII 码值和十六进制表示。 - 使用
:registers
查看当前可用的寄存器内容。 - 在可视模式下选择文本后,使用
:normal
命令对所选文本执行普通模式命令。例如,:'<,'>normal! Iu
会将选中文本的每一行首字母转换为大写。 - 使用
<C-w>gf
在新的水平分割窗口中打开光标下的文件名对应的文件。 - 使用
:TOhtml
将当前文件转换为带有 Vim 语法高亮的 HTML 文件。 - 使用
zm
,zr
,zc
,zo
分别折叠/展开、关闭/打开折叠。使用z=
来修复拼写错误。 - 使用
:scriptnames
列出所有已加载的脚本文件。 - 使用
:runtime
来运行 Vim 脚本。这对于加载插件很有用,例如:runtime plugin/foo.vim
。 - 使用
:helpgrep
在所有帮助文件中搜索指定的文本。例如,:helpgrep foo
将搜索包含“foo”的所有帮助文件。
这只是冰山一角,Vim 是一个非常强大且可定制的编辑器。要想深入了解 Vim 的各种功能和技巧,请参阅官方文档和社区资源。通过不断练习和探索,您会不断提高使用 Vim 的技能。
Zoran:
- 请你介绍一下vim的abbreviate如何使用
ChatGPT:
- Vim 中的缩写(Abbreviations)是一种简化输入的方法,允许您将常用短语或字符组合定义为一个简短的别名。当您键入这个别名并输入一个非字母字符(如空格、标点符号等)时,Vim 会自动将其扩展为预先定义的短语。
Vim 提供了几种定义缩写的方法,下面是一些例子:
- 使用
:abbreviate
命令定义缩写:
1 |
|
这会创建一个缩写,将 “ws” 扩展为 “Write-Save”。当您在插入模式下键入 “ws” 并输入一个非字母字符(如空格、标点符号等)时,”ws” 将自动扩展为 “Write-Save”。
- 使用
:iabbrev
定义插入模式下的缩写:
1 |
|
这会创建一个仅在插入模式下有效的缩写。在命令模式或其他模式下,”tb” 不会扩展为 “table”。
- 使用
:cabbrev
定义命令模式下的缩写:
1 |
|
这会创建一个仅在命令模式下有效的缩写。在插入模式或其他模式下,”E” 不会扩展为 “Edit”。
要删除已定义的缩写,可以使用 :unabbreviate
、:iunabbrev
或 :cunabbrev
命令。例如:
1 |
|
要列出当前已定义的缩写,可以使用 :abbreviations
命令。这将显示所有模式下的缩写。要查看特定模式下的缩写,可以使用 :iabbreviations
(插入模式)或 :cabbreviations
(命令模式)。
注意,缩写对大小写敏感。如果您需要创建一个大小写不敏感的缩写,可以使用 :abbreviate!
、:iabbrev!
或 :cabbrev!
。例如:
1 |
|