vim相关

远程的时候还是vim最好用,直接用ssh连接就能用,VNC或者RDP刷新率太低了,当然在电脑上还是直接用IDE好。


安装Vim:

sudo apt-get install vim

Vim配置文件~/.vimrc:

call plug#begin('~/.vim/plugged')
Plug 'scrooloose/nerdtree'
Plug 'rhysd/vim-clang-format'
call plug#end()

set history=1000 "设置历史记录步数"
syntax enable "开启语法高亮
set nu "显示行号

set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1 "解决中文乱码
set enc=utf8
set fencs=utf8,gbk,gb2312,gb18030

set background=dark
colorscheme solarized

autocmd VimEnter * NERDTree

更改配置文件后,在Vim中运行以下命令使配置文件生效,或者重新打开 Vim。

:source ~/.vimrc

vim快捷键:

1、移动光标:

k, j, h, l上、下、左、右
ctrl + e向下移动页面
ctrl + f上翻一页
ctrl + b下翻一页
ctrl + u上翻半页
ctrl + d下翻半页
w跳到下一个字首,按标点或单词分割
W跳到下一个字首,长跳,如end-of-line被认为是一个字
e跳到下一个字尾
E跳到下一个字尾,长跳
b跳到上一个字
B跳到上一个字,长跳
0跳至行首,不管有无缩进,就是跳到第0个字符
^跳至行首的第一个字符
$跳至行尾
gg跳至文首第一个字符
G/Shift + g跳至文尾第一个字符
5gg/5G跳至第5行
gd跳至当前光标所在的变量的声明处
fx在当前行中找x字符,找到了就跳转
;重复上一个f命令,而不用重复的输入fx
*查找光标所在处的单词,向下查找
#查找光标所在处的单词,向上查找

2、选中复制粘贴删除

复制:y<=>yank(提起),剪切:d<=>delete(删除),粘贴:p<=>put(放下) 

v进入可视模式,移动光标键选定内容
dd剪切光标所在行
ndd删除以当前行开始的n行
d^剪切至行首
d$剪切至行首
dw剪切一个word
ndw剪切n个word
dG剪切至档尾
d剪切选定块到缓冲区
D删除到行末
x删除当前字符
X删除前一个字符
yy复制一行
nyy复制n行(光标移动到将要复制的首行处)
yw复制当前单词(光标移动到单词首字符)
y0复制到行首
y$复制到行尾
p粘贴粘贴板的内容到当前行的下面
P粘贴粘贴板的内容到当前行的上面

3、插入模式

i从当前光标处进入插入模式
I进入插入模式,并置光标于行首
a追加模式,置光标于当前光标之后
A追加模式,置光标于行末
o在当前行之下新加一行,并进入插入模式
O在当前行之上新加一行,并进入插入模式
esc退出插入模式

4、编辑

J将下一行和当前行连接为一行
cc删除当前行并进入编辑模式
cw删除当前字(光标往后),并进入编辑模式
c$擦除从当前位置至行末的内容,并进入编辑模式
s删除当前字符并进入编辑模式
S删除光标所在行并进入编辑模式
xp交换当前字符和下一个字符
u撤销上一次操作
ctrl+r重做
~切换大小写,当前字符
<<将当前行左移一个单位(一个tab符)
>>将当前行右移一个单位
==自动缩进当前行

5、查找替换

/string向后搜索字符串string,按n键可到下一个string所在的位置
?string向前搜索字符串string,按n键可到下一个string所在的位置
"/\cstring"不区分大小写的查找
"/\Cstring"区分大小写的查找
n下一个匹配(如果是/搜索,则是向下的下一个,?搜索则是向上的下一个)
N上一个匹配(同上)
:%s/old/new/g搜索整个文件,将所有的old替换为new
:%s/old/new/gc搜索整个文件,将所有的old替换为new,每次都要你确认是否替换

6、退出编辑器

:!暂时退出当前的vim页面,返回到打开当前vim的shell窗口
:w将缓冲区写入文件,即保存修改
:wq保存修改并退出
:x

保存修改并退出

:q退出,如果对缓冲区进行过修改,则会提示
:q! 强制退出,放弃修改

用Vim打开一个文本后,按Shift + : 进入命令行模式,按Esc,进入文本的操作模式。

在命令行模式下,输入set nu ,可显示行号;输入set nonu 可关闭显示行号

在命令行模式下,直接输入行号即可跳转到指定行。

使用ctrl+z 快捷键,可使当前的vim不关闭并切换到后台,再使用快捷键fg可将其切换到前台。

获取当前编辑的文件名::f 或 :e

比较两个文件的内容:

(1)

vim -d file1 file2 或 vimdiff file1 file2

(2) 如果已经打开了文件file1,再打开另一个文件file2进行比较

:vert diffsplit file2

如果没有用vert命令,diffsplit则会分上下两个窗口。

(3) 如果更改了某个窗口的内容,vim又没有自动更新diff检查,可以使用如下命令更新

:diffupdate

(5) 定位到不同点:
[c 跳到前一个不同点
]c 跳到后一个不同点

(6) 在窗口间跳转:
ctrl-w w    跳到下一个窗口
ctrl-w h    跳到左侧窗口
ctrl-w l    跳到右侧窗口
ctrl-w j    跳到下方的窗口
ctrl-w k    跳到上方的窗口

 

文本操作模式下,批量注释代码行的方法:

       (1)ctrl+v 进入可视块模式

       (2)按上下键或者j、k键选中要注释的代码行(块)

       (3)按Shift + i 进入编辑模式,此时光标在选中块的第一行行首

       (4)输入我们要插入的(任意)字符,如# 或//

       (5)按两次Esc就可以实现批量插入字符,不仅仅实现批量注释而已

批量注释代码行的方法:

       (1)ctrl+v 进入可视块模式

       (2)按上下键或者j、k键选中要取消注释的代码行(块)

       (3)按 x 或 d 即可完成删除

参考:VIM常用快捷键 


安装Vim插件:

1、安装插件管理器Vim-plug

curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

 2、编辑~/.vimrc文件, 在顶部添加以下行,之后要安装的插件直接写到这两行中间即可。

call plug#begin('~/.vim/plugged')

call plug#end()

3、在https://vimawesome.com/搜索需要安装的插件并点击进入(这里以安装NERDTree插件为例),点击左侧VimPlug,将右侧配置复制到上述~/.vimrc两行call中间,保存退出。

call plug#begin('~/.vim/plugged')
Plug 'scrooloose/nerdtree'
call plug#end()

其他常用的插件还有:???

vim代码格式化插件:Plug 'rhysd/vim-clang-format'

需要事先安装clang-format:

sudo apt-get install clang-format

参考:Clang 10 documentation 

vim函数间跳转:ctags

sudo apt-get install ctags
或
sudo apt-get install exuberant-ctags
cd /path/to/project/
ctags -R # 在当前目录下会生成一个tags文件,这个文件就是所有函数和变量的索引列表。

用vim打开任一文件,将光标移到想要跳转的函数或变量上,通过 " Ctrl + ] " 跳转到函数定义处,通过 " Ctrl + t " 或 “ Ctrl + o ” 回到跳转之前的位置。

4、在 vim 配置文件中添加上面的行后,通过输入以下命令重新加载。

source ~/.vimrc

 5、进入vim,在命令模式下输入:PlugInstall ,即可完成插件安装,安装的插件都位于~/.vim/plugged目录下。

6、设置用vim打开文件时自动启用NERDTree:在~/.vimrc最后加入一句:

autocmd VimEnter * NERDTree

7、卸载插件

删除~/.vimrc文件中两行call之间的配置语句,在vim命令模式输入:PlugClean,选择y即可彻底删除插件。

8、其他Vim-plug命令(在vim命令模式下输入)

PlugStatus # 检查现在plug负责的插件状态
PlugUpdate # 更新已安装的插件
PlugUpgrade # 升级自身

参考:vim插件:vim-plug下NERDTree、colorschemes 


文件管理插件NERDTree的使用:

1、常用操作:

  a)在linux命令行界面,用vim打开一个文件。

  b)输入:NERDTree,回车

  c)进入当前目录的树形界面,通过小键盘上下键,能移动选中的目录或文件

  d)ctr+w+h  光标focus左侧树形目录,ctrl+w+l 光标focus右侧文件显示窗口。多次摁 ctrl+w,光标自动在左右侧窗口切换

  e)输入:q回车,关闭光标所在窗口

按回车展开目录

2、NERDTree常用快捷键:

h j k l移动光标定位
ctrl+w+w 光标在左右窗口切换
ctrl+w+r 切换当前窗口左右布局

go: 打开一个文件,但是光标仍然留在NERDTree
o: 打开关闭文件或者目录,如果是文件的话,光标出现在打开的文件中
O: 打开结点下的所有目录
x: 合拢当前结点的父目录,收起当前打开的目录
X: 合拢当前结点的所有目录,收起所有打开的目录
t: 打开一个文件,创建的是Tab,对书签同样生效,在标签页中打开
T: 打开一个文件,但是光标仍然留在NERDTree,创建的是Tab,对书签同样生效,在后台标签页中打开
i: 水平分割窗口打开文件
s: 或纵向分割窗口打开文件
gi: 水平分割创建文件的窗口,但是光标仍然留在NERDTree
gs: 和gi,go类似
e: 以文件管理的方式打开选中的目录
D: 删除书签

P: 跳转到光标所在的上层目录
p: 跳转到当前目录
K: 到同目录第一个节点
J: 到同目录最后一个节点

<C-j>和<C-k>: 在同级目录和文件间移动,忽略子目录和子文件
C: 将根路径设置为光标所在的目录
u: 设置上级目录为根路径,打开上层目录
U: 设置上级目录为跟路径,但是维持原来目录打开的状态
r: 刷新光标所在的目录
R: 刷新当前根路径
I: 显示或者不显示隐藏文件
f: 打开和关闭文件过滤器

A: 全屏显示NERDTree,或者关闭全屏
q: 关闭NERDTree


! 执行此文件
u 打开上层目录
m 显示文件系统菜单(添加、删除、移动操作)
?: 快速帮助文档

vim配色(solarized风格)

先改终端的配色为Solarized


vim高亮与当前光标所在单词相同的所有单词???

将光标移动到要匹配的单词处:

"g + d" :高亮显示所有相同的单词

shift + "*" :向下查找相同单词并高亮显示

shift + "#" :向上查找相同单词并高亮显示

命令行模式下输出:“noh” 命令取消高亮显示

对比两个文本:vimdiff 1.txt 2.txt

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值