Cwww3's Blog

Record what you think

0%

Vim 基本操作

正常模式

切换

  • 到插入模式

    • i (insert) 停留在光标所在字符之前
    • I 在光标所在行行首停留
    • a (append) 定留在光标所在字符之后
    • A 在光标所在行行尾停留
    • o (open a line) 在光标所在行下面创建一个空行,并停留在下一行
    • O 在光标所在行上面创建一个空行,并停留在上一行
    • s 删除光标所在字符
    • S 删除光标所在行
  • 到命令行模式

    • :
  • 到可视化模式

    • v 选择光标经过的字符
    • V 选择光标经过的行
    • Ctrl + v 选择块

操作

motion
  • ↑ ↓ ← → 移动一个单位

  • n→ 向右移动n个单位

  • w word 移动到下一个单词

  • b back word 移动到上一个单词

  • 0 ^ 移动到行首

  • $ 移动到行尾

  • f find 向右查找

    • f<char> 从光标所在位置向右移动到第一个指定字符(光标所在行范围内有效)
  • F 向左查找

  • gg 移动到第一行

  • nG 移动到第n行

  • G 移动到最后一行

operation
  • d delete 剪切
  • y 复制
  • p paste 粘贴
  • c change 删除并进入编辑模式
operation + motion
  • d→ 删除光标定位的字符
  • d← 删除光标左边的第一个字符
  • dn→ 删除光标右边n个字符(包括光标所在字符)
  • dn← 删除光标左边n个字符(不包括光标所在字符)
  • df<char> 删除 从光标开始到右边的第一个指定字符(包括该字符)
  • dF<char> 删除 从光标开始到左边的第一个指定字符(包括该字符)
  • dgg 删除上面所有的行(包括光标所在行)
  • dG 删除下面所有的行(包括光标所在行)
  • dnG 删除光标所在行到第n行
  • di) 删除括号内的内容 (光标要在括号中)
  • diw 删除光标所在的单词
  • dd 删除光标所在行
  • /<string><CR> 查找字符串
  • n 移动到下一个查到的元素
  • N 移动到上一个找到的元素
  • zz 让光标所在行位于屏幕中央
  • nzz 移动到下一处并使其处于屏幕中央

插入模式

  • 切换到正常模式
    • Esc

命令行模式

  • 切换到正常模式
    • Esc
  • 操作
    • :split | :sp 上下分屏
    • :vsplit | :vs 左右分屏
    • <Ctrl> + w + w 按顺序切换分屏
    • <Ctrl> + w + (h|l|j|k) 向左|向右|向下|向上 切换分屏
    • <Ctrl> + w + = 扩大分屏
    • <Ctrl> + w + - 缩小分屏
    • :edit . | :e . 显示当前目录

可视化模式 (Visual Mode)

  • 可视化模式下可以选择一块编辑区域,然后对选中的文件内容执行插入、删除、替换、改变大小写等操作

配置文件

  • 路径 ~/.vim/vimrc 没有则创建

功能配置

1
2
3
4
5
6
7
8
syntax on # 语法高亮
set number # 显示行号
set cursorline # 突出光标所在行
set ignorecase # 忽略大小写
set wildmenu # 命令模式下 输入部分单词 按TAB键 提供多个单词选择

set hlsearch # 搜索结果匹配到的内容高亮显示
set incsearch # 搜索过程中匹配的内容高亮显示

键盘映射

  • 语法 map action1 action2 当触发action1时 会被映射为action2

  • map 对应模式

    • 不带noremap 可以被再次映射
    • map noremap 正常模式 可视化模式 运算符模式
    • nmap nnoremap 正常模式
    • vmap vnoremap 可视化模式
    • omap onoremap 运算符模式
    • map! noremap! 插入模式 命令行模式
    • imap inoremap 插入模式
    • cmap cnoremap 命令行模式
  • 操作

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    # 让leader键(前缀键)为空格 默认是\
    let mapleader = " "

    # 将 s S 映射为 无效操作
    map s <nop>
    map S <nop>

    # 将 W 映射为 保存
    map W :w<CR>

    # 将 Q 映射为 保存并退出
    map Q :wq<CR>

    # 将 R 映射为 加载配置文件
    # $MYVIMRC需要配置环境变量 $export MYVIMRC = ~/.vim/vimrc
    map R :source $MYVIMRC<CR>

    # 查找下一项并保持在屏幕中央
    map = nzz
    # 查找上一项并保持在屏幕中央
    map - Nzz

    # 让 空格+回车 关闭搜索高亮显示
    map <leader><CR> :nohlsearch<CR>

插件

1
2
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
1
2
3
4
5
6
7
8
# 指定插件下载路径
call plug#begin('~/.vim/plugged')
# 指定插件路径 单引号导入
# Plug 'https://github.com/vim-airline/vim-airline.git'
# 简短版
Plug 'vim-airline/vim-airline'
Plug 'connorholyday/vim-snazzy'
call plug#end()
1
2
3
4
#配置完后重新加载配置文件
#输入
:PlugInstall<CR>
#进行安装
1
2
# 安装完成后配置文件添加
colorscheme snazzy
Donate comment here.