Skip to content
kcp edited this page May 16, 2019 · 2 revisions

title: Vim date: 2018-12-15 12:05:58 tags: - Vim categories: - 工具

目录 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-05-10 18:10|


Vim

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

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

Tips

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

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

    • 具备语法高亮 路径中间是依据vim版本来的, 按实际情况改动
  3. vim 中粘贴内容时被自动缩进, 导致大量空格

    1. 先执行 :set paste 命令,然后粘贴
    2. 关闭 paste 模式 :set nopaste

vim配置

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

基本配置

  • 在文件 全局:/etc/vim/vimrc 先备份一下 sudo cp /etc/vim/vimrc /etc/vim/vimrc.bak
    • 或者当前用户:~/.vimrc 中添加如下内容
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 " 设置相对行号
" 逗号后追加空格
inoremap , ,<space>  

GVim

~/.gvimrc

: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 等效

  • P/p 将剪贴板的内容粘贴在 前/后
    • "+p 将系统的剪贴板内容粘贴进来
  • u 撤销上一条命令的效果
  • . 重复最后一条修改正文的命令

插入模式

  • i 在光标左侧插入
  • a 在光标右侧插入
  • o 在光标该行下一行新增一行
  • O 在光标该行上一行新增一行
  • I 在光标该行开头插入
  • A 在光标该行末尾插入

命令模式

  • :e path 打开指定路径下文件
  • :w 保存当前编辑的文件 后接文件名就是另存为
  • ZZ 退出Vim 并将所做修改覆盖原始文件
  • :q 未修改的情况下退出
  • :q! 放弃所有修改,退出
  • wq x 先保存后退出

语言插件

vim-python
vim-go


vim-init

Github:

spf13

SpaceVim

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

space-vim

Github:

Summary

Clone this wiki locally