目录 start

  1. Vim
    1. Tips
    2. 基本配置
    3. 基础操作
      1. 跳转
        1. 高级跳转
      2. 搜索和替换
      3. 复制粘贴
      4. 插入模式
      5. 命令模式
    4. 语言插件
    5. vim-init
    6. spf13
    7. SpaceVim
    8. space-vim

目录 end|2019-10-19 17:04|


Vim

学习曲线很高,但是学会熟练使用后就效率很高

bytefluent.com/vivify 方便的自制主题

vim教程网

Tips

  1. 误按 Ctrl S 终止屏幕输出(即停止回显)你敲的依然有效,只是看不见 Ctrl Q 即可恢复

  2. /usr/share/vim/vim80/macros/less.sh vim 版 less

    • 具备语法高亮 路径中间是依据vim版本来的, 按实际情况改动
  3. 设置默认编辑器 export EDITOR=/usr/bin/vim


vim配置

  • 系统 vimrc 文件: $VIM/vimrc
  • 用户 vimrc 文件: $HOME/.vimrc
  • 第二用户 vimrc 文件: ~/.vim/vimrc
  • 用户 exrc 文件: $HOME/.exrc
  • defaults file: $VIMRUNTIME/defaults.vim
  • $VIM 预设值: /usr/share/vim

基本配置

  1. 全局修改 :/etc/vim/vimrc
  2. 或者配置放在 /etc/vim/vimrc.local

    • 然后在 /etc/vim/vimrc 中添加:
      1
      2
      3
      if filereadable("/etc/vim/vimrc.local")
      source /etc/vim/vimrc.local
      endif
  3. 或者当前用户:~/.vimrc 中添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
set showcmd		" Show (partial) command in status line.
set autowrite " Automatically save before commands like :next and :make
set nocompatible
set number
filetype on
syntax on
set history=1000
set autoindent
set smartindent
set tabstop=4
set expandtab
set shiftwidth=4
set showmatch
set guioptions=T
set ruler
set hls
set backspace=2
imap jk <Esc>

set relativenumber " 设置相对行号

GVim

~/.gvimrc

1
2
3
4
:set guifont=IBM\ Plex\ Mono\ 12
colorscheme desert
syntax enable
syntax on

基础操作

参考博客
高效率编辑器 Vim——操作篇,非常适合 Vim 新手

  • v 可视化操作

参考博客: vim中执行shell命令小结

跳转

  • K J H L 上下左右
  • Ctrl+F 上翻一页
  • Ctrl+B 下翻一页
  • H M L 跳转到屏幕 顶 中 尾

    • 2H 第二行 3L 倒数第三行
  • * 当光标在某单词上 会进行搜索跳转到下一个

  • #* 一样,不过是跳转到上一个
  • /)/( 跳转到 后和前 语句的位置 为了() 跳转方便
  • /}/{ 跳转到 后和前 段落的位置
  • g_ 跳转到最后一个不是空格的字符的位置
  • gg 跳转到文件第一行的起始位置
  • G 跳转到文件最后一行起始位置

  • 5gg5G :5 跳转到 5 行的起始位置

  • number 正数则是往下,负数则是往上 (相对)

行内移动

  • w 右移到下一个字的开头
  • e 右移到下一个字的末尾
  • b 左移到前一个字的开头
  • 0 左移光标到本行的开始
  • $ 右移光标到行末尾
  • ^ 移动到本行第一个非空字符

fg 在光标所在处(如果是有效的目录或者文件,就能直接跳转过去)

高级跳转

  • fg 如果光标所在处是一个完整的路径,就跳转到该文件

搜索和替换

  • /name 正向搜索字符串 name
    • n 搜索后跳下一个
    • 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 等效
  1. vim 中粘贴内容时被自动缩进, 导致大量空格
    1. 先执行 :set paste 命令,然后粘贴
    2. 关闭 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

Github:

spf13

SpaceVim

参考博客: SpaceVim 中文手册主要看评论, 两个作者理念不同
参考博客: 如何评价Vim配置文件SpaceVim?

space-vim

Github: