文档章节

vi常用命令

muliuhai
 muliuhai
发布于 2017/08/20 11:11
字数 1648
阅读 1
收藏 0
点赞 0
评论 0

插入:

i 从光标当前位置开始插入

a 从光标当前位置的下一个字符开始插入

o 在光标位置的下行插入一个空行,再进行插入

O 在光标位置的上一行插入一个空行,再进行插入

I 从光标所在行的开头开始插入正文

A 从光标所在行的末尾开始插入正文

esc=(ctrl+[)

 

文件保存与退出:

:w 保存文件

:w <filename> : 另存为

:w! 强制保存文件

:q 退出

:q! 强制退出

:x = :wq

 

文件写入与打开:

:w filename 保存文件为给出的文件名

:w! filename 强制保存文件为给出的文件名

 

:f filename 将当前文件重命名为filename

 

:r filename 插入文件内容到光标指定的位置

:e filename 编辑新文件(打开另一个文件进行编辑)

:e! 放弃对文件的修改,并加裁原始的文件内容

 

复制粘贴:

[n]x 删除从光标开始的连续n个字符

[n]dd 删除从光标开发的n行

[n]yy 复制从光标开始的n行

y$ 从光标位置复制在行尾

p 粘贴

gp 粘贴

 

u 撤消

U 撤消对一行的全部操作

ctrl+r 重做(反撤消)

.  重复上次操作

 

yw 复制一个word

dw 剪贴一个word

cw 修改一个word

D 剪贴光标到行尾

C 修改光标到行尾

 

选择:

v  按字符选择

V 按行选择

ctrl+v 按块选择

 

光标跳转:

h、j、k、l 左、下、上、右

H、M、L 屏幕最上边、屏幕中间位置、屏幕最下边

gg  跳到文件第一行

G    跳到文件最后一行

$ 跳到行末

0(数字0)跳到行首

 

[num]gg(或[n]G)    跳到文件第n行

[n]H 跳到屏幕第n行

fx  光标移动到本行之后第一此出现“x”的位置;如:fa ,移动到下一次a出现的位置

Fx  光标移动到本行之前一此出现“x”的位置;如:fa ,移动到上一次a出现的位置

%   在前后括号({}() )位置之间移动

 

:n 跳到第n行(同[n]G)

w 光标向右移动一个字

W   光标移动到下的个空格之后

b 光标向左移动一个字

B   光标移动到上一个空格之后

num%  跳到文件num%处 , 如50%

 

编辑模式下按v 进入可视状态进行内容选择

[n]shift + > 所选内容向右移动一个tab

[n]shift + < 所选内容向左移动一个tab

 

查找替换:

/string 查找字符串 ,配合n(next)使用

*  向后搜索光标所在位置的一个word

#  向前搜索光标所在位置的一个word

 

/\<xxx  查找以xxx开头的字符串

/xxx\>  查找以xxx结尾的字符串

/\<xxx\> 完全匹配查找

 

d/int main  从光标所在位置开始删除,直到遇到int main

 

:s/str1/str2 用str2替换行中首次出现的字符串str1

:s/str1/str2/g 用str2替换行中所有的字符串str1

 

:%s/str1/str2/g   用str2替换全文中所有的字符串str1,不询问,强制替换

:%s/str1/str2/gc  用str2替换全文中所有的字符串str1,询问

 

fd 查找本行第一个d字符

; 下一个

, 上一个

 

vi:

打开或新建:

  vi <filename>         #命令行

  :ed <filename>        #最后一行模式

  :fin[d] <path/file>   #在路径path中查找文件,然后编辑它

  new <file>            # 在新窗口中编辑文件

 

窗口操作:

  :sp(或ctrl+w+s): 打开一个新窗口,编辑相同的内容。

  :new(或ctrl+W+n): 打开一个空的北新窗口。

  ctrl+w+w: 在多个窗口间切换

 

J 删除行末的换行符,将下行与本行合并为一行

滚屏:

ctrl+u[p]    向下滚半屏

ctrl+d[own]  向上滚半屏

ctrl+f[ront] 向下滚一屏

ctrl+b[ack]  向上滚一屏

 

ctrl+e  向下滚一行

ctrl+y  向上滚一行

 

zz    将光标所在的行放在屏幕中间

zt    将光标所在的行放在屏幕第一行 top

zb    将光标所在的行放在屏幕最后一行 botton

 

Go  跳到文件尾部去插入

 

标签:

  :tabe [file] 打开新标签并在新标签中编辑file所指的文件

  :[num] gt 在不同的标签之间切换 num指的是第几个标签

  :tabo 关闭所有其它的标签页

  :tabs 列出标签页和它们包含的窗口

  :tabfir[st] 跳转到第一个标签

  :tabl[ast]   跳转到最后一个标签

  

vim比较文件内容:

  vimdiff main.c main2.c

  

vim设置:

 

set number

set nonumber

 

set ignorecase    #忽略大小写 (查找字符串时)

set noignorecase

 

set ruler         #显示当前光标所在位置

set nuruler

 

set hlsearch      #高亮显示 (查找字符串是,找到后高亮显示)

set nohlsearch

 

set incsearch     #在输入字符串时就开发查找

set noincsearch

 

syn on #高亮显示

set backspace=2  #backspace可用

编程编:

1. 打开include 的文件:

  (1) 光标放在文件名上,按 ctrl+w  f ,在一个水平分割的窗口中打开。

  (2) 光标放在文件名上,按gf, 在同一个窗口中打开。

2. 通过find命令打开文件:

  (1)先通过set path设置查找的目录:

     set path=.,./**,/usr/include  表示在当前目录,当前目录下的所有子目录,和/usr/include目录下进行查找

   (2)设置好目录后在vi下用:find filename即可查找并打开文件信盈达企鹅要妖气呜呜吧久零就要。

 

3. ctags  

(1).在项目目录下用“ctags -R .”产生tags文件。 可将ctags命令写入makefile文件中

(2).在vim中设置tags文件“set tags=tags”

(3).在vim中通过tag命令中转到函数:tag main

    :tag {ident} “中转到指定的标签

    :tags "显示标签

    :Ctrl+] “跳转到当前光标下的标签(函数声明处)

    :Ctrl+T “跳转到标签栈中较早的标签(函数调用处)

在taglist串口中将光标移动到某个tag上,按空格键会在状态栏上显示原型

 

4. taglist

:TlistOpen 打开taglisg

:p "预览taglist窗口中光标所在位置的tag。

:o "在新窗口中打开光标所在位置的tag

:l "展开tag

:+ "展开tag

:= "展开所有tag

:- "折叠tag(不用shift)

:* "折叠所有tag

 

6. MiniBufExplorer

此插件会使窗口上显示一个buff清单,可以在该窗口上来选择打开某个buf文件

<Tab> :跳到下一个buffer名上

<shift+Tab>:跳到上一个buffer名上

© 著作权归作者所有

共有 人打赏支持
muliuhai
粉丝 3
博文 79
码字总数 155337
作品 0
郑州

暂无相关文章

MySQL 数据库设计总结

规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节...

OSC_cnhwTY ⋅ 55分钟前 ⋅ 0

多线程(四)

线程池和Exector框架 什么是线程池? 降低资源的消耗 提高响应速度,任务:T1创建线程时间,T2任务执行时间,T3线程销毁时间,线程池没有或者减少T1和T3 提高线程的可管理性。 线程池要做些什...

这很耳东先生 ⋅ 今天 ⋅ 0

使用SpringMVC的@Validated注解验证

1、SpringMVC验证@Validated的使用 第一步:编写国际化消息资源文件 编写国际化消息资源ValidatedMessage.properties文件主要是用来显示错误的消息定制 [java] view plain copy edit.userna...

瑟青豆 ⋅ 今天 ⋅ 0

19.压缩工具gzip bzip2 xz

6月22日任务 6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具 6.1 压缩打包介绍: linux中常见的一些压缩文件 .zip .gz .bz2 .xz .tar .gz .tar .bz2 .tar.xz 建立一些文...

王鑫linux ⋅ 今天 ⋅ 0

6. Shell 函数 和 定向输出

Shell 常用函数 简洁:目前没怎么在Shell 脚本中使用过函数,哈哈,不过,以后可能会用。就像java8的函数式编程,以后获取会用吧,行吧,那咱们简单的看一下具体的使用 Shell函数格式 linux ...

AHUSKY ⋅ 今天 ⋅ 0

单片机软件定时器

之前写了一个软件定时器,发现不够优化,和友好,现在重写了 soft_timer.h #ifndef _SOFT_TIMER_H_#define _SOFT_TIMER_H_#include "sys.h"typedef void (*timer_callback_function)(vo...

猎人嘻嘻哈哈的 ⋅ 今天 ⋅ 0

好的资料搜说引擎

鸠摩搜书 简介:鸠摩搜书是一个电子书搜索引擎。它汇集了多个网盘和电子书平台的资源,真所谓大而全。而且它还支持筛选txt,pdf,mobi,epub、azw3格式文件。还显示来自不同网站的资源。对了,...

乔三爷 ⋅ 今天 ⋅ 0

Debian下安装PostgreSQL的表分区插件pg_pathman

先安装基础的编译环境 apt-get install build-essential libssl1.0-dev libkrb5-dev 将pg的bin目录加入环境变量,主要是要使用 pg_config export PATH=$PATH:/usr/lib/postgresql/10/bin 进......

玛雅牛 ⋅ 今天 ⋅ 0

inno安装

#define MyAppName "HoldChipEngin" #define MyAppVersion "1.0" #define MyAppPublisher "Hold Chip, Inc." #define MyAppURL "http://www.holdchip.com/" #define MyAppExeName "HoldChipE......

backtrackx ⋅ 今天 ⋅ 0

Linux(CentOS)下配置php运行环境及nginx解析php

【part1:搭建php环境】 1.选在自己需要安装的安装包版本,wget命令下载到服务器响应目录 http://php.net/releases/ 2.解压安装包 tar zxf php-x.x.x 3.cd到解压目录执行如下操作 cd ../php-...

硅谷课堂 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部