other-vim使用

other-vim使用


前篇


加入已有配置

  1. 上传并解压 vim.tar.gz 到 ~目录

    1
    $ tar -zxvf vim.tar.gz
  2. 上传已有配置文件 .vimrc 到 ~目录. done!

    1
    2
    3
    4
    root@NAS-Wilker:~# ll
    drwxrwxr-x 1 1002 1002 4096 Oct 23 16:51 .vim
    -rw-r--r-- 1 root root 1164 Jan 4 15:35 .vimrc
    -rw-r--r-- 1 root root 4121953 Oct 23 16:53 vim.tar.gz

linux,mac终端快捷键

linux/mac输入terminal命令的快捷键:

​ ctrl+c,停止运行 ctrl+s,暂停屏幕输出 ctrl+q,恢复屏幕输出

ctrl+a, 跳到行开始 ** ctrl+e**,跳到行end ** ctrl+left**,跳到上一个单词 ctrl+right,跳到下一个单词(mac下是alt快捷键)

ctrl+u, 删除当前到开始的内容 ctrl+k,删除当前至末尾的内容 ctrl+w, 删除当前至开头的一个单词

mac系统打开/关闭/切换终端 常用快捷键

​ cmd+t:开一个terminal标签页 cmd+shift+left:标签页切换 cmd+shift+r:标签页切换

​ cmd+n:开一个新的terminal窗口 cmd+left:窗口切换 cmd+right:窗口切换

​ cmd+d:垂直切分当前窗口 cmd+shift+d:合并垂直切分的窗口


vim快捷键

保存/退出

  • :x : 保存并退出
  • :w 保存但不退出
  • :w! 强制保存
  • :q 退出
  • :q! 强制退出 (不会保存修改)

移动光标位置

  • hjkl : ←, ↓, ↑, →

  • w : 下一个单词(仅包含字母), W : 下一个单词(包含特殊符号)

  • b : 上一个单词(仅包含字母), B : 上一个单词(包含特殊符号)

  • 翻页

    • ctrl+f : 下一页
    • ctrl+b : 上一页
    • ctrl+d : 下半页
    • ctrl+u : 上半页
    • aa
    • ctrl+e : 前向移动页一行
    • ctrl+y : 后向移动页一行
  • G : 文末 gg : 文头

  • :n : 跳到第 n 行

  • ^ : 跳到当前行第一个非空白字符

    • 0 : 跳到当前行第一个字符
  • $ : 跳到当前行最后一个非空白字符

插入模式切换:

  • esc : 进入命令模式, i : 当前位置插入, a : 下一个字符插入, o : 下一行插入, O : 上一行插入, cw : 删除当前位置下一个单词插入
  • x : 删除当前字符
  • u : 撤销上一步的操作
  • ctrl+r : 恢复上一步被撤销的操作 (win 下的 ctrl+y)

查找/替换

  • 查找
    • /pattern : 前向查找
    • ?pattern : 后向查找
    • n : 查找下一个
    • shift+n : 查找上一个
  • 替换
    • s/pattern1/pattern2 : 替换
    • s/pattern1/pattern2/g : 替换当前行所有
    • %s/pattern1/pattern2/g : 替换从第一行开始所有

块操作

ctrl+v : 开始选择要操作的块

  • 插入 : shift+i , 输入文字, 然后 esc 两次

  • d : 删除

  • s : 删除后替换


复制/粘贴

  • yy : 复制一行

  • nyy : 复制 n 行

  • p : 粘贴; shift + insert : 也是粘贴

  • . : 重复执行上一次命令

  • 100idesu:插入100次desu . :再次复制100次

  • v 进入选择模式, 选择后按 y 则复制, d 则删除


删除

  • dd : 删除一行
  • ndd : 删除 n 行
  • 删除单词
    • dw : 删除到下一个单词开头
    • dW : 删除到下一个单词开头包括标点在内
    • de : 删除到本单词末尾
    • dE : 删除到本单词末尾包括标点在内
    • db : 删除到前一个单词
    • dB : 删除到前一个单词包括标点在内

分屏操作:

  • split : 上下分屏

  • vsplit : 左右分屏

  • ctrl+w+hjkl : 切换分屏到不同方向

  • e : 打开文件


vim设置

  • 模板

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    """"""""""""""""""""""""""""""插件管理""""""""""""""""""""""""""""""
    execute pathogen#infect()
    syntax enable
    filetype plugin indent on
    """"""""""""""""""""""""""""""通用设置""""""""""""""""""""""""""""""
    "不要vim模仿vi模式
    set nocompatible
    "智能缩进,缩进为4,tab转成空格
    set smartindent
    set tabstop=4
    set softtabstop=4
    set shiftwidth=4
    set expandtab
    "命令补全
    set wildmenu
    "搜索不区分大小写,实时匹配,高亮
    set ignorecase
    set incsearch
    set hlsearch
    "backspace可以删除任何
    set backspace=2
    "工具栏颜色,内容
    colorscheme zellner
    set laststatus=2
    set statusline=\ %F\ %y%m%r%h\ %w\ %{&ff}\[%{&fenc}]\ \ Line:\ %l/%L:%c
    "背景颜色,显示行号
    set background=dark
    set nu
    "设置显示编码,存盘编码,文件格式
    set encoding=utf-8
    set fileencodings=utf-8,gbk,GB2312
    set ffs=unix,dos,mac
    "括号自动补全
    ""inoremap " ""<ESC>i
    ""inoremap ( ()<ESC>i
    ""inoremap [ []<ESC>i
    ""inoremap { {<CR>}<ESC>O
    "长行分行jk
    nnoremap j gj
    nnoremap k gk
    "不产生swap文件
    set noswapfile
    """"""""""""""""""""""""""""""插件管理""""""""""""""""""""""""""""""
    "F3 搜索
    nnoremap <silent> <F3> :Rgrep<CR><CR>

永久显示行号

  • 修改 vim 配置 .vimrc

    1
    2
    3
    $ vim ~/.vimrc

    set number

正则表达式

元字符是具有特殊意义的字符。使用元字符可以表达任意字符行首行 尾某几个字符等意义。

元字符一览

元字符 说明
. 匹配任意一个字符
[abc] 匹配方括号中的任意一个字符。可以使用-表示字符范围, 如**[a-z0-9]**匹 配小写字母和阿拉伯数字。
[^abc] 在方括号内开头使用^符号,表示匹配除方括号中字符之外的任意字符。
\d 匹配阿拉伯数字,等同于**[0-9]**。
\D 匹配阿拉伯数字之外的任意字符,等同于**[^0-9]**。
\x 匹配十六进制数字,等同于**[0-9A-Fa-f]**。
\X 匹配十六进制数字之外的任意字符,等同于**[^0-9A-Fa-f]**。
\w 匹配单词字母,等同于**[0-9A-Za-z_]**。
\W 匹配单词字母之外的任意字符,等同于**[^0-9A-Za-z_]**。
\t 匹配字符。
\s 匹配空白字符,等同于**[ \t]**。
\S 匹配非空白字符,等同于**[^ \t]**。

另外,如果要查找字符 *、.、/等,则需要在前面用 ** 符号,表示这不是元字符,而只是普通字符而已。

元字符 说明
\* 匹配 * 字符。
\. 匹配 . 字符。
\/ 匹配 / 字符。
\\ 匹配 \ 字符。
\[ 匹配 [ 字符。

表示数量的元字符

元字符 说明
* 匹配0-任意个
\+ 匹配1-任意个
\? 匹配0-1个
\{n,m} 匹配n-m个
\{n} 匹配n个
\{n,} 匹配n-任意个
\{,m} 匹配0-m个

表示位置的符号

元字符 说明
$ 匹配行尾
^ 匹配行首
\< 匹配单词词首
\> 匹配单词词尾

使用例


粘贴后缩进错误

  • 解决办法: 进入粘贴模式后, 粘贴就不会自动缩进

    1
    2
    :set paste // 进入粘贴模式
    :set nopaste // 退出粘贴模式