Vim
Contents
💠
💠 2024-09-28 11:21:46
Vim
学习曲线很高,但是学会熟练使用后就效率很高
官方教程程序 vimtutor
bytefluent.com/vivify
方便的自制主题
Tips
-
误按
Ctrl S
终止屏幕输出(即停止回显)你敲的依然有效,只是看不见Ctrl Q
即可恢复 -
/usr/share/vim/vim80/macros/less.sh
vim 版 less- 具备语法高亮 路径中间是依据vim版本来的, 按实际情况改动
-
设置默认编辑器
export EDITOR=/usr/bin/vim
-
vim 会导致文件 inode 变更 why inode value changes when we edit in “vi” editor?
-
命令模式输入
:%!xxd
就可以16进制方式查看和编辑二进制文件了 注意最左行号和最右的预览内容不能修改:%!xxd -r
回到 ascii模式
-
:set fenc=utf8 nobomb ff=unix
设置文件无BOM U8格式
配置文件优先级
- 系统 vimrc 文件:
$VIM/vimrc
- 用户 vimrc 文件:
$HOME/.vimrc
- 第二用户 vimrc 文件:
~/.vim/vimrc
- 用户 exrc 文件:
$HOME/.exrc
- defaults file:
$VIMRUNTIME/defaults.vim
- $VIM 预设值:
/usr/share/vim
基本配置
- 全局修改 :
/etc/vim/vimrc
- 或者配置放在
/etc/vim/vimrc.local
- 然后在
/etc/vim/vimrc
中添加:
1 2 3
if filereadable("/etc/vim/vimrc.local") source /etc/vim/vimrc.local endif
- 然后在
- 或者当前用户:
~/.vimrc
个人vim配置
GVim
~/.gvimrc
|
|
基础操作
- v 可视化操作
跳转
-
K J H L 上下左右
-
Ctrl+F 上翻一页
-
Ctrl+B 下翻一页
-
H M L 跳转到屏幕 顶 中 尾
- 2H 第二行 3L 倒数第三行
-
*
当光标在某单词上 会进行搜索跳转到下一个 -
#
与*
一样,不过是跳转到上一个 -
/)
和/(
跳转到 后和前 语句的位置 为了() 跳转方便 -
/}
和/{
跳转到 后和前 段落的位置 -
g_
跳转到最后一个不是空格的字符的位置 -
gg
跳转到文件第一行的起始位置 -
G
跳转到文件最后一行起始位置 -
5gg
或5G
:5
跳转到 5 行的起始位置 -
number
正数则是往下,负数则是往上 (相对)
行内移动
w
右移到下一个字的开头e
右移到下一个字的末尾b
左移到前一个字的开头0
左移光标到本行的开始$
右移光标到行末尾^
移动到本行第一个非空字符
fg
在光标所在处(如果是有效的目录或者文件,就能直接跳转过去)
高级跳转
- fg 如果光标所在处是一个完整的路径,就跳转到该文件
Ctrl Shift 6
或者:e#
跳回来 | 参考 stackoverflow
搜索和替换
/name
正向搜索字符串 namen
搜索后跳下一个N
搜索后跳上一个
?name
反向搜索字符串
替换
:[range]s/pattern/string/[c,e,g,i]
参数 | 含义 |
---|---|
range | 指的是范围 1,5 指的是1-5行; 1,$ 或是1,% 则是第一行到最后一行; .,5 当期行到第5行 |
pattern | 就是要被替换掉的字串,可以用 regexp 來表示。 |
string | 匹配到 pattern 的字符串替换为 string |
c | confirm,每次替换前先询问 |
e | 不显示error |
g | global 全局 |
i | ignore 不分大小写。 |
% 是目前編輯的文章,# 是前一次編輯的文章, . 表示当前行
复制粘贴
:reg
查看寄存器
yy
复制当前行nyy
是复制该行开始的共n行(是vim内的剪贴板)yn
加换行 等效
"+nyy
同理复制n行,操作系统级的剪贴板"+yn
等效
- vim 中粘贴内容时被自动缩进, 导致大量空格
- 先执行
:set paste
命令,然后粘贴 - 关闭 paste 模式
:set nopaste
- 先执行
P
/p
将剪贴板的内容粘贴在 前/后"+p
将系统的剪贴板内容粘贴进来
u
撤销上一条命令的效果.
重复最后一条修改正文的命令
插入模式
- i 在光标左侧插入
- a 在光标右侧插入
- o 在光标该行下一行新增一行
- O 在光标该行上一行新增一行
- I 在光标该行开头插入
- A 在光标该行末尾插入
命令模式
:e path
打开指定路径下文件:w
保存当前编辑的文件 后接文件名就是另存为ZZ
退出Vim 并将所做修改覆盖原始文件:q
未修改的情况下退出:q!
放弃所有修改,退出wq
x
先保存后退出
先 q 再 : 就会显示最近的命令
插件管理
语言插件
- vim-python
- vim-go
定制化
vim-init
spf13
SpaceVim
参考: SpaceVim 中文手册
主要看评论, 两个作者理念不同
参考: 如何评价Vim配置文件SpaceVim?
space-vim
Author Kuangcp
LastMod 2018-12-15