other-vim使用
other-vim使用
前篇
加入已有配置
上传并解压 vim.tar.gz 到 ~目录
1
$ tar -zxvf vim.tar.gz
上传已有配置文件
.vimrc
到 ~目录. done!1
2
3
4root@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 // 退出粘贴模式