vim nerdtree 常用命令

推荐一个快速安装的库
Vim入门基础

VIM

命令模式下:输入:后再上下移动,可获得历史命令
跳到行首和行尾:Home / End 或 shift + 6 / shift + 4
刷新文本 :e!
模式:
Vim的模式众多,一般有:
Normal Mode:普通模式,默认进入vim之后,处于这种模式。
Visual Mode:可视模式,在这种模式下选定一些字符、行、多列。在普通模式下,可以按v进入。
Insert Mode:插入模式,其实就是指处在编辑输入的状态。普通模式下,可以按i进入。
Select Mode:在gvim下常用的模式,选择模式。用鼠标拖选区域的时候,就进入了选择模式。和可视模式不同的是,该模式下,选择完了高亮区域后,敲任何按键就直接输入并替换选择的文本了。普通模式下,可以按gh进入。
Command-Line/Ex Mode:命令行模式和Ex模式。两者略有不同,普通模式下按冒号(:)进入Command-Line模式,可以输入各种命令。普通模式下按Q进入Ex模式,其实就是多行的Command-Line模式。

快捷键映射:
对于map而言,可能有这么几种前缀
nore:表示非递归,也就是a映射到b,b映射到c,nore表示a不映射到c。默认的map就是递归的。
n:表示在普通模式下生效
v:表示在可视模式下生效
i:表示在插入模式下生效
c:表示在命令行模式下生效
unmap:unmap后面跟着一个按键组合,表示删除这个映射。
mapclear:mapclear清除相关模式下的所有映射。

:map :noremap :unmap :mapclear
:nmap :nnoremap :nunmap :nmapclear
:vmap :vnoremap :vunmap :vmapclear
:imap :inoremap :iunmap :imapclear
:cmap :cnoremap :cunmap :cmapclear

映射教程1
映射教程2
保存退出:
ctr+z快速退出vim
:q 退出
:wq 保存退出
:q! 强行退出
u 撤销,Ctrl+r 恢复上一步被撤销的操作
i 输入模型
esc 普通阅览模式
ZZ:保存并且退出。注意z是大写,也就是按住shift键再按键盘的z键

复制一行或多行:
1)单行复制
在命令模式下,将光标移动到将要复制的行处,按“yy”进行复制;
2)多行复制
在命令模式下,将光标移动到将要复制的首行处,按“nyy”复制n行;
3)粘贴
在命令模式下,将光标移动到将要粘贴的行处,按“p”进行粘贴。
4)将第9行至第15行的数据,复制到第16行
:9,15 copy 16 或 :9,15 co 16
由此可有:
:9,15 move 16 或 :9,15 m 16 将第9行到第15行的文本内容到第16行的后面

vision模式复制:

  1. 将光标移动到要复制的文本开始的地方,按v进入可视模式。
  2. 将光标移动到要复制的文本的结束的地方,按y复制。此时vim会自动将光标定位到选中文本的开始的地方,并退出可视模式。
  3. 我移动光标到文本结束的地方,按p粘贴。

替换内容:

:%s/str1/str2/g 用str2替换str1,g表示替换全文,s即substitude

详细命令
删除行:
dd:删除游标所在的一整行(常用)
ndd:n为数字。删除光标所在的向下n行,例如20dd则是删除光标所在的向下20行
d1G:删除光标所在到第一行的所有数据
dG:删除光标所在到最后一行的所有数据
d$:删除光标所在处,到该行的最后一个字符
d0:那个是数字0,删除光标所在到该行的最前面的一个字符
x,X:x向后删除一个字符(相当于[del]按键),X向前删除一个字符(相当于[backspace]即退格键)
nx:n为数字,连续向后删除n个字符

批量缩进:
1、按v进入visual状态,选择多行,用shift + >或<缩进或缩出
2、命令状态:对当前行用== (连按=两次), 或对多行用n==(表示自动缩进从当前行起的下面n行。使用gg=G可对整篇代码进行排版。
3、命令状态下:“行号1,行号2>”输入命令,如要将2至9行批量缩进一个tab值,则命令为“2,9>”。几个<就缩进几个tab。

针对自动缩进导致的粘贴混乱:
在配置文件中加入F2进入粘贴模式
第一行在命令模式下,按F2会在状态栏显示paste模式
第二行在insert模式下,按F2会在状态栏显示paste模式

nnoremap <F2> :set invpaste paste?<CR>
imap <F2> <C-O>:set invpaste paste?<CR>
set pastetoggle=<F2>

注释:
原生
推荐使用vim-commentary,设置如下

"vim-commentary
"为python和shell等添加注释
autocmd FileType python,shell,coffee set commentstring=#\ %s
"修改注释风格
autocmd FileType java,c,cpp set commentstring=//\ %s

安装:

vimrc添加:
Plugin 'tpope/vim-commentary'
命令行::PluginInstall

使用方法:

gcc     注释当前行(普通模式),3gcc注释当前行(包括)以下的3行
gcap	注释一个段落(普通模式),形式:gc{text-object}注释文本对象所占据的行。
gc      可视模式下,注释,或取消注释选中行。
:7,17Commentary	注释,或取消注释 range 指定的行。
gcu     撤销上一次注释的部分,可以是一行也可以是多行
gcgc    撤销注释当前行和邻近的上下两行

xshell打开vim情况下复制文档到本地剪贴板:
没发现什么好方式,觉得使用F2(设置的快捷方式)关闭nerdtree和关闭行号然后用鼠标选中复制还不错。

显示行号
输入命令:
    set nu
或者
    set number
取消显示行号
命令:
    set nonu
或者
    set nonumber

vim在命令screen中颜色变化问题:
vim ~/.screenrc,加入:

# terminfo and termcap for nice 256 color terminal
# allow bold colors - necessary for some reason
attrcolor b ".I" 
# tell screen how to set colors. AB = background, AF=foreground 
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' 
# erase background with current bg color 
defbce "on"

NERDTree

在窗口打开文件:
o 在已有窗口中打开文件、目录或书签,并跳到该窗口
go 在已有窗口 中打开文件、目录或书签,但不跳到该窗口
i split 一个新窗口打开选中文件,并跳到该窗口
gi split 一个新窗口打开选中文件,但不跳到该窗口
s vsplit 一个新窗口打开选中文件,并跳到该窗口
gs vsplit 一个新 窗口打开选中文件,但不跳到该窗口

切换窗口:
ctrl + w + h 光标 focus 左侧树形目录
ctrl + w + l 光标 focus 右侧文件显示窗口
ctrl + w + w 光标自动在左右侧窗口切换
ctrl + w + r 移动当前窗口的布局位置
ctrl+w+j/k,通过j/k可以上下切换,或者:ctrl+w加上下左右键

关闭窗口:
可以用:q!,也可以使用:close,最后一个窗口不能使用close关闭。使用close只是暂时关闭窗口,其内容还在缓存中,只有使用q!、w!或x才能真能退出。

关闭窗口:
q 或 close #关闭当前窗口
only #保留当前窗口,关闭其它所有窗口
qall(qa) #退出所有窗口
wall #保存所有窗口

新建标签页:
t 在新 Tab 中打开选中文件/书签,并跳到新 Tab
T 在新 Tab 中打开选中文件/书签,但不跳到新 Tab

切换标签页
:tabnew [++opt选项] [+cmd] 文件 建立对指定文件新的tab
:tabc 关闭当前的 tab
:tabo 关闭所有其他的 tab
:tabs 查看所有打开的 tab
:tabp 前一个 tab
:tabn 后一个 tab
标准模式下:
gT 前一个 tab
gt 后一个 tab

执行文件:
! 执行当前文件

nerdtree窗口:
O 递归打开选中 结点下的所有目录
x 合拢选中结点的父目录
X 递归 合拢选中结点下的所有目录
e Edit the current dif
双击 相当于 NERDTree-o
中键 对文件相当于 NERDTree-i,对目录相当于 NERDTree-e
D 删除当前书签
P 跳到根结点
p 跳到父结点
K 跳到当前目录下同级的第一个结点
J 跳到当前目录下同级的最后一个结点
k 跳到当前目录下同级的前一个结点
j 跳到当前目录下同级的后一个结点
C 将选中目录或选中文件的父目录设为根结点
u 将当前根结点的父目录设为根目录,并变成合拢原根结点
U 将当前根结点的父目录设为根目录,但保持展开原根结点
r 递归刷新选中目录
R 递归刷新根结点
m 显示文件系统菜单
cd 将 CWD 设为选中目录
I 切换是否显示隐藏文件
f 切换是否使用文件过滤器
F 切换是否显示文件
B 切换是否显示书签
q 关闭 NerdTree 窗口
? 切换是否显示 Quick Help

复制,删除,重命名文件:
先在nerdtree窗口按m,根据提示选择相应选项.
这里写图片描述

配置

 "打开vim时自动启动NerdTree,并在打开文件时自动进去右边编辑区                                                                                                                                                                              
 autocmd vimenter * NERDTree
 wincmd w
 autocmd VimEnter * wincmd w
 "vim退出时退出nerdtree
 autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") &&b:NERDTreeType == "primary") | q | endif
  
 "显示nerd书签
 let NERDTreeShowBookmarks=1
 "映射F3为NerdTree开启关闭快捷方式
 map <F3> :NERDTreeMirror<CR>
 map <F3> :NERDTreeToggle<CR>

这里写图片描述
移动到行首 数字键 0 or Shift+6
移动到行位 $ or Shift+4
向上\下滚动半屏 ctrl+u\d
向上\下滚动一屏(这个比较实用,记住) ctrl+b\f
移动到整个文件最顶部 gg
移动到整个文件最底部 G
移动到第 x 行 xG or :x
移动到当前行字符 x 上(向后搜索,继续移动到下一个 x 的命令按,键,上一个 x 的命令是按;键) fx
移动到当前行字符 x 上(向前搜索,继续移动到下一个 x 的命令按,键,上一个 x 的命令是按;键) Fx
撤销修改 u
恢复上一步的撤销内容 ctrl+r
关闭当前preview window ctrl+y,使用映射键在代码提示框中移动。
在这里插入图片描述
编辑状态下的快速移动:
加入快捷键:
一些老的终端软件bs发送的是ctrl+h,导致inert mode情况下backspace失效,我们需要修改下配置

inoremap <C-o> <Esc>o  
inoremap <C-l> <Right> 
inoremap <C-h> <Left> 
inoremap <C-k> <Up> 
inoremap <C-j> <Down> 
inoremap <C-b> <PageUp> 
inoremap <C-f> <PageDown>

最全的vim快捷键

Xshell

ctrl + L 清屏
ctrl + U 删除光标前字符
ctrl + K 删除光标后字符
ctrl + A 光标移动行首
ctrl + E 光标移到行末
ctrl + 左右箭头 光标移动到上/下一个单词
ctrl + B 光标移动到前一个字符
ctrl + F 光标移动到后一个字符
ctrl + o 新建session
ctrl + tab / shift +tab 切换窗口
ctrl + insert 复制
shift + insert 粘贴

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值