-
" nerdtree settings
nnoremap <leader>f :NERDTreeFind<cr>
nnoremap <leader>t :NERDTreeToggle<cr>
" set width
let NERDTreeWinSize=31
" show hidden files
let NERDTreeShowHidden=1
" not show files listed
let NERDTreeIgnore= [
\ '\.git$', '\.hg$', '\.svn$', '\.stversions$', '\.pyc$', '\.pyo$', '\.swp$',
\ '\.DS_Store$', '\.sass-cache$', '__pycache__$', '\.egg-info$', '\.ropeproject$',
\ ]
查看全部 -
normal 移动的快捷方式:
w/W: 移动到下一个word/WORD 开头
e/E: 移动到下一个 word/WORD 结尾
b/B: 移动到上一个 word/WORD 开头 (backword)
行间搜索移动
f{char}: 当前光标往行后搜索字符, 分号(;)下一个找到的字符,逗号(,)上一个找到的字符
F{char}: 当前光标往前搜索字符
0: 移动到行首第一个字符
^: 移动到第一个非空白字符
$: 移动到行尾
g_: 移动到行尾非空白字符
页面移动
gg: 文件开头
G: 文件结尾
H: 屏幕的开头(Head)
M: 屏幕的中间(Middle)
L: 屏幕的结尾(Lower)
crtl+u: 上翻页(upword)
ctrl+f: 下翻页(forword)
zz: 屏幕置为中间
查看全部 -
概念:
Buffer: 内存缓冲区
Window: Buffer的可视化分割区域
Tab: 组织Window为一个工作区
<TAB> 补全命令
:ls 列举当前缓冲区
:b [num] 跳转到[num]缓冲区
:b [name] 跳转到[name]缓冲区
:bpre/bnext/bfirst/blast 跳转到上一个/下一个/第一个/最后一个缓冲区
:e [name] 打开[name]文件
C-w s 水平分割窗口
C-w v 垂直分割窗口
C-w w 循环切换窗口
C-w h/j/k/l 切换到←/↓/↑/→窗口
C-w H/J/K/L 移动当前窗口向←/↓/↑/→
C-w = 所有窗口等宽高
C-w _/| 当前窗口最大化高度/宽度
[num]C-w _/| 当前窗口高度设为[num]行/列
:tabnew 新建标签页
:tabe [name] 在新标签页打开[name]文件
:tabc 关闭当前标签页和窗口
:tabo 只保留当前标签页并关闭其他的
C-w T 将当前窗口移动到新标签页
:tabn [num] 切换到[num]标签页,没有[num]表示下一个
[num]gt 同上
:tabp 切换到上一个标签页
gT 同上
查看全部 -
数字+命令可多次执行该命令
删除:
x 删除一个字符
d[object] 删除一个[object]
[object]包括但不限于:
(a)w 单词(包含空白符)
iw 单词(不包含空白符)
$
0
...
dd 删除当前行
dt[char] 删除直到[char]的字符
修改:
r 替换当前字符
R 进入替换模式
s 删除当前字符并进入插入模式
S 删除当前行并进入插入模式
c[object] 删除一个[object]并进入插入模式
ct[char] 删除直到[char]的字符并进入插入模式
C 删除当前行光标后所有字符并进入插入模式
查询:
:set hls 搜索结果高亮
:set incsearch 增量搜索
/[string] 正向搜索
?[string] 反向搜索
其中:
n/N 下一个/上一个匹配
*/# 当前单词的正向/反向匹配
查看全部 -
" 常用设置
" 设置行号
set number
colorscheme hybrid
" 按F2进入粘贴模式
set pastetoggle=<F2>
" 高亮搜索
set hlsearch
" 设置折叠方式
set foldmethod=indent
” 一些方便的映射
Let mapleader= ' ,'
let g:mapleader=','
" 使用jj进入normal模式
inoremap jj <Esc>`^
"使用leader+w 直接保存
inoremap <leader>w <Esc> :w<cr>
noremap < leader>w :w<Cr>
" 切换buffer
nnoremap <silent> [b :bprevious<CR>
nnoremap <silent> [n :bnext<CR>
" use ctrl+h/j/k/L switch window
noremap <C-h> <C-w>h
noremap <C-j> <C-w>j
noremap <C-k> <C-w>k
noremap <C-l> <C-w>l
"Sudo to write
cnoremap w!! w !sudo tee % >/dev/null
" json格式化
com! FormatJSON %!python3 -m json.tool
" 插件设置,这里使用了vim-plug
call plug#begin('~/ . vim/plugged')
"安装插件只需要把github 地址放到这里重启后执行:PlugInstall 就好了
PLug 'mhinz/vim-startify'
PLug 'scrooloose/nerdtree'
call plug#end()
查看全部 -
## 2-9 vim复制粘贴与寄存器的使用
### vim在Normal模式复制粘贴
- Normal模式下复制粘贴分别使用y(yank)和p(put),剪切d和p
- 可以使用v(visual)命令选中所要复制的地方,然后顺遂p粘贴
- 配合文本对象:比如顺遂yiw复制一个单词,yy复制一
### Insert模式下的复制粘贴
- 和其他文本编辑器差不多,但粘贴代码有个坑
- 在vimrc中设置了autoindent,粘贴Python代码缩进错乱
- 这个时候需要使用`:set paste`和`:setnopaste`解决
### 什么是vim的寄存器
- vim里操作的是寄存器而不是系统剪切版,这和其他编辑器不同
- 默认使用d删除或者y复制的内容都放到了“无名寄存器”
- 用x删除一个字符放到无名寄存器,然后p粘贴,可以调换俩字符
### 深入寄存器(register)
- 通过`"{register}`前缀可以指定寄存器,不指定默认无名寄存器
- 比如使用`"ayiw`复制一个单词到寄存器a中,'bdd删除当前行到寄存器b中
- :reg a查看寄存器a中的内容
- "a p粘贴a寄存器中的内容
### 其他常见寄存器
除了有名的寄存器a-z,vim中还有一些其他常见寄存器
- 复制专用寄存器`"0`使用y复制的文本同时会被考呗到复制寄存器0
- 系统剪切版`"+`可以复制到系统剪切版
- 其他寄存器,比如`"%`当前文件名,`".`上次插入的文本
- :set clipboard=unnamed可以让你直接复制粘贴系统剪切版内容
查看全部 -
学习配置,后面学习的人越来越少了
查看全部 -
:% s/要替换的/替换成的/g.c.n
c-r 撤销u命令
\<精确单词\>
查看全部 -
a append
i insert
o open a line below
A append after line
I insert before line
O append a line above
查看全部 -
xp 俩字符互换位置
"" 默认寄存器 "0 复制寄存器 "+ 系统剪贴板 "% 当前文件名 ". 上次插入的文本
:set clipboard=unnamed 直接使用系统剪切板
在插入模式 用<C-r>+粘贴系统剪切板中的内容
查看全部 -
daw : delete a word
dt{char}: delete to the char
dd : delete the row
x : delete a char
c : change
c : change a word
查看全部 -
1、sp、vs可进行分屏编辑;
2、% s/str1/str2/[g] 可进行文本[全局]替换;
3、normal模式下,v/V进行可视化(光标/整行选中)操作;
4、y命令可以复制选中的块,p可以粘贴复制的块。
查看全部 -
vim4种模式
Normal普通模式(浏览)
Esc插入模式回到普通模式
普通模式下进行各种命令操作和移动
大部分情况下,使用的是浏览
Insert插入模式(编辑)
a/i/o 光标进入插入模式
A/I/O 行进入插入模式
Command命令模式(操作)
Normal模式下:进入命令模式
:q退出 :w保存
:vs(vertical split)垂直左右分屏 :sp(split) 水平上下分屏
:set nu 设置行号
:% s/java/python/g 全部替换java->python
Visual可视模式(选择)
Nomal模式下进入Visual模式
v选择字符
V选择行
ctrl+v块状选择
查看全部 -
1. 输入模式下快速纠错(终端下也有类似的快捷键)
• ctrl+h 删除上一个字符
• ctrl+w 删除上一个单词
• ctrl+u 删除当前行
• ctrl+a (终端) 快速移动到开头
• ctrl+e (终端)快速移动到结尾
• ctrl+f (终端)光标后移
• ctrl+b (终端)光标迁移
2. 快速切换 insert 和 normal 模式
insert -> normal: ctrl+c 或者 ctrl+[
gi: normal 模式切换到 insert 模式,且到上次编辑的地方查看全部 -
## 2-13 裸的vim
- 很多初学者Vim基本命令都不熟就开始找一些复杂的强大配置
- 不利于你熟悉Vim,一旦出问题了你还不知道怎么修复
- 建议初学者还是从裸的Vim开始学习,有些场景比如服务器或者容器上我们没法配置Vim
学之前,先用对打字指法和盲打
- 编辑代码,脑子- -般比手快,盲打有利于跟上你的大脑速度
- 裸的Vim也有很多强大功能和使用方式,本章你应该学到了不少
- 学会了用Vim ,你可以在你的IDE.上安装Vim插件,几乎所有流行的编辑器和IDE工具都支持Vim插件
查看全部
举报