vi 打开vi空白面板

vi filename 以编辑模式打开文件。如果参数为已有文件,在vi中打开;如果参数为新文件名,在vi退出时提示用户保存编辑内容

vi -R filename 以只读模式打开文件

vi -o file1 file2 同时打开多个文件并全部查看 只能在一个文件中进行修改

vim file1 file2 查看一个文件

ctrl + ww 切换不同文件

:n 切换到后一个文件

:prex 切换到前一个文件

command mode

i 在当前光标位置之前插入文本

I 在当前行的开始处插入文本

a 在当前光标位置之后插入文本

A 在当前行的结尾处插入文本

o 在光标位置的下面为文本条目创建一个新行

O 在光标位置的上面为文本条目创建一个新行

n1-n2 替换:n1,n2s /old/new 指定区间替换内容

查找: / 字符

设置区分大小写: set ic 不区分大小写 set noic

dg 删除光标所在行到末尾

gg 转到第一行

G 转到最后一行

ng :n 到第n行

o 转到行首

$ 转到行尾

x 删除光标所在位置的字符

nx 删除光标所在处之后的n个字符

dw 从当前光标位置开始删除,一直到下一个单词

D 从光标位置开始删除,一直到当前行结束

dd 删除光标所在行

ndd 删除光标之后的n行

u 撤销上一步操作 可以连续使用

:n1,n2d 删除n1-n2之间的行

cw 修改光标所在位置的单词,修改范围是从游标位置一直到单词结束

r 替换光标所在位置的字符

R 覆盖从光标当前所在的字符开始的多个字符,按ESC结束

map 设置快捷键

map ctrl+v+letter

s 用输入字符替换当前字符

S 删除光标所在行,并用新文本替换,输入新文本后,仍处在插入状态

J 将当前行与下面的行合并为一行

yy 复制当前行

nyy 复制当前行以下n行

yw 复制当前单词

dd 剪切当前行

ndd 剪切当前行以下n行

p 将复制的文本插入到光标位置的后面

P 将复制的文本插入到光标位置的前面

string 搜索指定字符串

:%s/old_string/new_string 全文替换将old_string替换为new_string

:q 退出vi编辑器,如果对文件进行了修改,vi不能退出,返回编辑模式

:q!或:w!或:wq! 强行退出vi编辑器,无论对文件是否进行了修改,都将退出编辑器

:w 保存当前文件,如果用户正在编辑一个已有文件,直接保存。如果当前用户对该文件没有写入,将保存失败

:wq 或 zz 或 :x 保存并退出

:w filename 将文件保存在filename中,该命令将修改后的文件保存为另一个文件。如果用户启动vi时没有使用文件名作为参数,

那就必须使用这个命令,否则用户会丢失已做的修改。

:e! 打开文件上次成功保存的版本,以便在发现输入错误时,退回最近一次的保留版本

vim_command的更多相关文章

随机推荐

  1. 熊海CMS xhcms v1.0代码审计

    有空的时候就进行小型CMS的代码审计,这次审计的对象是熊海CMS v1.0 本地环境安装好了之后,可以看到提示安装了锁文件 说明重装漏洞应该不会存在了,这时候丢进seay代码审计系统的代码也出结果了, ...

  2. jenkins+git部署环境,出现Failed to connect to repository : Command "git ls-remote -h http://gitlab.xxxxx.git HEAD" returned status code 128stdout: stderr: fatal: repository 'http://gitlab.xxxxx.git' not fou

    1.部署jenkins+git源码管理的方式,源码管理报128stdout 源码管理出现如下错误: Failed to connect to repository : Command "gi ...

  3. 你必须知道的MySQL知识点

    什么是索引 索引是帮助MySQL高效获取数据的排好序的数据结构 索引数据结构(掌握) 数据结构可视化 前置知识:树的高度越低查询效率越高 二叉树:不能自平衡,极端情况出现倾斜,查询效率和链表类似 红黑 ...

  4. 题解 CF830D Singer House

    \(\texttt{Solution}\) 首先考虑 \(\texttt{dp}\) 维护题目要求的深度为 \(i\), 每个节点最多经过一次的不同有向路径数量 \(f_i\). 明显的,只维护这个东 ...

  5. redis学习之——主从复制(replication)

    准备:拥有linux环境,并安装redis mater:主机,进行写操作 slave:从机,进行读操作 一.配置 继续前边的学习.我们是拷贝redis.conf,文件到了/root /redis 下. ...

  6. 传输层-Transport Layer(下):UDP与TCP报头解析、TCP滑动窗口、TCP拥塞控制详解

    第六章 传输层-Transport Layer(下) 上一篇文章对传输层的寻址方式.功能.以及流量控制方法做了简短的介绍,这一部分将介绍传输层最重要的两个实例:TCP协议和UDP协议,看一看之前描述的 ...

  7. python 使用UUID库生成唯一ID

      首先导包: import uuid   uuid1(): # make a UUID based on the host ID and current time     #  基于MAC地址,时间 ...

  8. Linux下修改禅道端自定义端口号

    第一种方式 一.        首先,如果我们的服务器的80端口没有开放的话,那么我们就是只能修改Apache应用服务的端口了,其实非常简单,安装完成禅道后,在任意目录下输入命令: /opt/zbox ...

  9. C++线程详细说明

    一.问题的提出 编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX ...

  10. 群晖DS218+部署Harbor(1.10.3)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...