关注作者不迷路,老王带你玩工具
vim使用文档Vimscript编程参考 - Vim中文手册
vim基础用法
vim 是一个功能强大的文本编辑器,它拥有许多高级用法,可以极大地提高你的编辑效率。以下是一些 Vim 的高级用法:
-
模式切换:
- 普通模式(Normal Mode):默认模式,可以进行移动、复制、粘贴等操作。
- 插入模式(Insert Mode):用于插入文本。
- 可视模式(Visual Mode):选择文本,可以进行复制、删除等操作。
- 命令行模式(Command Mode):在底部输入命令。
-
快速移动:
h
、j
、k
、l
:左、下、上、右移动光标。gg
:移动到文件的开头。G
:移动到文件的末尾。0
:移动到当前行的开头。$
:移动到当前行的末尾。:行号
:跳转到指定行号。
-
文本编辑:
i
:进入插入模式,在光标前插入文本。I
:进入插入模式,在当前行的开头插入文本。a
:进入插入模式,在光标后插入文本。A
:进入插入模式,在当前行的末尾插入文本。o
:在当前行下方新开一行,并进入插入模式。O
:在当前行上方新开一行,并进入插入模式。dd
:删除当前行。yy
:复制当前行。p
:粘贴。
-
查找和替换:
/word
:向下查找 "word"。?word
:向上查找 "word"。n
:查找下一个匹配项。N
:查找上一个匹配项。:%s/old/new/g
:替换整个文件中的 "old" 为 "new"。
-
窗口分割:
:split
或:sp
:水平分割窗口。:vsplit
或:vsp
:垂直分割窗口。Ctrl + w
然后h/j/k/l
:在分割的窗口之间移动。
-
缓冲区管理:
:ls
或:buffers
:列出所有缓冲区。:buffer
或:b
:切换到指定缓冲区。:bnext
或:bn
:切换到下一个缓冲区。:bprevious
或:bp
:切换到上一个缓冲区。
-
宏录制:
q<letter>
:开始录制宏到寄存器<letter>
。q
:停止录制。@<letter>
:执行寄存器<letter>
中的宏。
-
撤销和重做:
u
:撤销上一次操作。Ctrl + r
:重做上一次撤销的操作。
-
设置:
:set number
或:set nu
:显示行号。:set nowrap
或:set nowrapscan
:禁止换行。:set tabstop=4
:设置制表符宽度为 4 个空格。
-
插件和扩展:
- Vim 社区提供了大量的插件和扩展来增强 Vim 的功能,如
Vundle
、Pathogen
等用于管理插件。
- Vim 社区提供了大量的插件和扩展来增强 Vim 的功能,如
-
自定义快捷键:
:map
:创建快捷键映射。
-
使用 Vim 脚本:
- Vim 脚本允许你编写脚本来自动化复杂的任务。
这些只是 Vim 高级用法的一小部分。Vim 的学习曲线可能比较陡峭,但一旦你掌握了它,你将能够以惊人的速度进行文本编辑
高级用法
Vim 脚本(通常以 .vim
扩展名结尾)是使用 Vim 的脚本语言编写的,这种语言允许你自动化编辑任务、定义快捷键、创建函数等。以下是编写 Vim 脚本的基本步骤和一些示例:
1. 打开 Vim 并进入命令模式
打开终端或命令提示符,然后输入 vim
来启动 Vim。
2. 创建新脚本文件
在 Vim 中,输入
:e your_script_name.vim
来创建一个新文件。
3. 编写脚本
Vim 脚本可以包含命令、函数、变量和条件语句等。
变量
使用 let
来声明变量:
let variable_name = "value"
函数
定义函数:
function! MyFunction() " 你的代码 endfunction
调用函数:
call MyFunction()
命令
直接在脚本中执行 Vim 命令:
:command! MyCmd echo "Hello, World!"
这会在 Vim 中创建一个名为 MyCmd
的新命令,当你输入 :MyCmd
时,它会显示 "Hello, World!"。
条件语句
使用 if
、else
和 endif
来添加条件逻辑:
if &filetype == 'python' set number endif
循环
使用 for
循环来重复执行命令:
for i in range(1, 10) echo i endfor
4. 保存并退出
使用 :wq
保存并退出 Vim。
5. 运行你的脚本
在 Vim 中运行脚本,可以通过 :source
命令:
:source your_script_name.vim
或者,如果你希望每次启动 Vim 时自动运行脚本,可以将 :source
命令添加到你的 .vimrc
文件中。
示例脚本
以下是一个简单的 Vim 脚本示例,它定义了一个函数来插入当前日期和时间:
" 插入当前日期和时间
function! InsertDateTime()
let l:date = strftime("%Y-%m-%d %H:%M:%S")
call append('.', l:date)
endfunction
" 创建一个快捷键来调用函数
command! InsertDateTime call InsertDateTime()
这个脚本定义了一个名为 InsertDateTime
的函数,它使用 Vim 的 strftime
函数来获取当前的日期和时间,并将其追加到文件的末尾。然后,脚本创建了一个名为 InsertDateTime
的命令,可以通过在 Vim 中输入 :InsertDateTime
来调用这个函数。
编写 Vim 脚本时,你可以利用 Vim 的强大功能来定制你的编辑环境,提高工作效率。记得查看 Vim 的官方文档(通过在 Vim 中输入 :help
),那里有更多关于脚本编写的详细信息和高级功能。