vi 配置

syntax enable
set nu

set relativenumber
set hlsearch

set autoindent
set shiftwidth=4
set tabstop=4
set expandtab
set cursorline
let g:netrw_liststyle = 3
let g:netrw_banner = 0
let g:netrw_winsize = 25
let g:netrw_browse_split = 3

set foldmethod=indent

zc 代码折叠

zo 代码展开

ctrl-f ctrl-b //整页翻页 f=forword b=backward
ctrl-d ctlr-u //翻半页 d=down u=up

:E :Vex :Sex 打开目录

ctrl+ww    切换左右窗口

文件或目录操作
创建文件 按 % 后, 输入文件名
创建目录 按 d 后, 输入目录名
删除文件或者目录 移动到对应的目标后, 按 D
重命名文件或者目录 移动到对应的目标后, 按 R

ctags安装

sudo apt install ctags

sudo ctags -R *   //在项目中建立tags索引文件

ctrl+]                  //跳转至光标所在对象定义之处
ctrl+t                  //返回跳转前位置

常用快捷键

x 删除光标处的字符

dd 删除整行

i 在光标前插入文本

a 在光标后插入文本

o 当前行下插入新行

u 撤销最后一次修改

:e! 放弃所有修改,从上次保存开始处再编辑

:wq 保存退出

:q! 不保存退出

/pattern:从光标开始处向文件尾搜索pattern

?pattern:从光标开始处向文件首搜索pattern

折叠方式

set fdm=indent

zc 折叠
zC 对所在范围内所有嵌套的折叠点进行折叠
zo 展开折叠
zO 对所在范围内所有嵌套的折叠点展开
[z 到当前打开的折叠的开始处。
]z 到当前打开的折叠的末尾处。
zj 向下移动。到达下一个折叠的开始处。关闭的折叠也被计入。
zk 向上移动到前一折叠的结束处。关闭的折叠也被计入。

多行复制

6,9 co 12
复制第6行到第9行之间的内容到第12行后面。

6,9 m 12

剪切第6行到第9行之间的内容到第12行后面。

G    移到文件的最后一行
nG    移到文件的第n行
w    移到下一个字的开头
W    移到下一个字的开头,忽略标点符号
b    移到前一个字的开头
B    移到前一个字的开头,忽略标点符号
L    移到屏幕的最后一行
M    移到屏幕的中间一行
H    移到屏幕的第一行
e    移到下一个字的结尾
E    移到下一个字的结尾,忽略标点符号
(    移到句子的开头
)    移到句子的结尾
{    移到段落的开头
}    移到下一个段落的开头
0或|    移到当前行的第一列
n|    移到当前行的第n列
^    移到当前行的第一个非空字符
$    移到当前行的最后一个字符
+或return   移到下一行的第一个字符
-    移到前一行的第一个非空字符

在vi中添加文本
命令    插入动作
a    在光标后插入文本
A    在当前行插入文本
i    在光标前插入文本
I    在当前行前插入文本
o    在当前行的下边插入新行
O    在当前行的上边插入新行
:r file    读入文件file内容,并插在当前行后
:nr file   读入文件file内容,并插在第n行后
escape    回到命令模式
^v char    插入时忽略char的指定意义,这是为了插入特殊字符
 
在vi中删除文本
命令    删除操作
x    删除光标处的字符,可以在x前加上需要删除的字符数目
nx    从当前光标处往后删除n个字符
X    删除光标前的字符,可以在X前加上需要删除的字符数目
nX    从当前光标处往前删除n个字符
dw    删至下一个字的开头
ndw    从当前光标处往后删除n个字
dG    删除行,直到文件结束
dd    删除整行
ndd    从当前行开始往后删除
db    删除光标前面的字
ndb    从当前行开始往前删除n字
:n,md    从第m行开始往前删除n行
d或d$    从光标处删除到行尾
dcursor_command   删除至光标命令处,如dG将从当产胆行删除至文件的末尾
^h或backspace   插入时,删除前面的字符
^w    插入时,删除前面的字
 

v 进入字符可视化模式
V 进入行可视化模式
Ctrl+v 进入块可视化模式

多行注释:
将光标移动到要注释的第一行位置
按ctrl + v进入 visual block模式
按字母j,或k(或者上下移动键)纵向选中需要注释的行
按大写字母I,进入插入模式
输入注释符号,例如##(需要添加几列就输入几个)
按esc键就注释多行了。

取消多行注释
将光标移动到要取消注释的第一行第一列位置
按ctrl + v进入 visual block模式
按小写字母h或l横向选中列的个数,按小写字母j或k纵向选中行的个数(同样可以使用上下左右移动键)
按d键或者delete键就可多行取消注释。

多行行尾加逗号
ctrl+v 3j $ A ,

多行变一行
V 3j J

 
http://www.pchou.info/linux/2016/11/10/vim-skill.html

vi 快捷键/ctags的更多相关文章

  1. Ubuntu终端及VI 快捷键

    Ubuntu终端 快捷键 功能 Tab 自动补全 Ctrl+a 光标移动到开始位置 Ctrl+e 光标移动到最末尾 Ctrl+k 删除此处至末尾的所有内容 Ctrl+u 删除此处至开始的所有内容 Ct ...

  2. vi快捷键

    /** * eclipse内置快捷: * * * 导入包:Ctrl+Shift+O * Ctrl+T 查看一个类的继承关系树,是自顶向下的,再多按一次Ctrl+T, 会换成自底向上的显示结构. 提示: ...

  3. vi快捷键必知必会

    文本编辑器是所有计算机系统中最常用的一种工具.UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充! ...

  4. linux vi快捷键大全

    h或^h 向左移一个字符 j或^j或^n 向下移一行 k或^p 向上移一行 l或空格 向右移一个字符 G 移到文件的最后一行 nG 移到文件的第n行 w 移到下一个字的开头 W 移到下一个字的开头,忽 ...

  5. vi 快捷键【转】【weber整理必出精品】

    光标的移动 命令 光标移动 h或^h 向左移一个字符 j或^j或^n 向下移一行 k或^p 向上移一行 l或空格 向右移一个字符 G 移到文件的最后一行 nG 移到文件的第n行 w 移到下一个字的开头 ...

  6. vi快捷键使用大全

    光标控制命令 命令 光标移动 h或^h 向左移一个字符 j或^j或^n 向下移一行 k或^p 向上移一行 l或空格 向右移一个字符 G 移到文件的最后一行 nG 移到文件的第n行 w 移到下一个字的开 ...

  7. vi 快捷键

    屏幕翻滚类命令Ctrl+u:向文件首翻半屏Ctrl+d:向文件尾翻半屏Ctrl+f:向文件尾翻一屏Ctrl+b:向文件首翻一屏 shift+g:到尾部 H:跳到第一行.M:跳到中间.L:跳到最后一行. ...

  8. vi 快捷键积累

    依据自己用到的.或者还没记住的.或者用的时候忘了的,慢慢积累. 一.全选复制粘贴. 全选: ggVG // 凝视: gg 光标移到首行 V 进入Visual(可视)模式 G 光标移到最后一行全选 选中 ...

  9. vim、vi 快捷键

    普通模式 移动光标 nj.nk 上下移动n行 nb.nw 前后移动n个单词 nh.nl 左右移动n个字符 L 移到屏幕的最后一行 M 移到屏幕的中间一行 H 移到屏幕的第一行 nG 移到文件第n行 G ...

  10. VI快捷键速记

    enjoy :P

随机推荐

  1. JAVA排序的方法

    //冒泡排序法: package fuxi;public class Bubble {    public static void main(String[] args) {        int a ...

  2. LeetCode-911 在线选举

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/online-election 题目描述 给你两个整数数组 persons 和 times .在选 ...

  3. docker问题记录解决

    1.普通用户docker命令提示permission denied(权限问题) [user1@docker-1 root]$ docker imagesGot permission denied wh ...

  4. 记录一次Python环境安装出现的问题(已安装java)

    之前是在其他电脑上安装python环境,没有问题. 换了一台电脑开始安装(注:已配置java环境) 安装包准备好 ( 这里使用的是python 3.6.5(64位) ,下载地址选择官网) 教程百度都有 ...

  5. python列表循环中删除元素

    遍历n个元素的列表,每次循环时删除当前元素,那么要多少次结束循环呢. 上一段代码: arr = [0,1,2,3,4] for x in arr: print('本次删除的元素:',x) arr.re ...

  6. unity工程多开Bat

    %cd%:: 源路径set sourceDir=C:\Projects\XXX:: 目标路径set destDir=C:\Projects\XXX_Clone :: 如果目标路径不存在就创建if no ...

  7. airtest IDE初级教程

    一.简介 AirtestIDE 是一款跨平台的 UI自动化测试编辑器 ,内置了Airtest和Poco的相关插件功能,能够使用它快速简单地编写 Airtest 和 Poco 代码. 1. Airtes ...

  8. vue路由跳转当前路由刷新

    在app.vue里面定义 reload() {         this.isRouterAlive = false         this.$nextTick(function () {      ...

  9. 01Java常用类

    Object类 Object概述 Object类是超类,基类,所有类都默认直接继承Object类. Object类中定义的方法,是所有对象都具备的方法. Object类可以存储任何类 ​ - 可以作为 ...

  10. Flink任务自定义个性化配置logback.xml文件

    之前已经写过如何使用logback将日志直接写入Kafka,然后通过es和kibana实时查看 但是如果我们想要每个任务都能够带上单独的信息比如开发者.任务名称等信息,那么就需要每个任务都指定一个lo ...