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. leetcode——(四)2020.06.08

    新的一周,leetcode计划:78,79,98,102,236,124,128 (23)

  2. c#如何取出指定的中间文本

    ///<summary> ///取出文本中间内容 ///<summary> ///<param name="left">左边文本</par ...

  3. 动态svg图片简单制作

    一.简介 #topics #no-box-shadow-img { box-shadow: none } 博主头像 svg图片格式不同于其它图片格式,svg图片本质上是一个xml文件,它内部是标记语言 ...

  4. buuctf-[网鼎杯 2018]Fakebook 1

    这道题,也是费了很大的劲,慢慢理解慢慢消化,今天,才开始把wp写出来 首先我们先扫描一波目录,用dirsearch扫一手,发现有robots.txt文件 dirseach自带的字典在db目录下,使用格 ...

  5. 利用promise实现间隔1s打印1,2,3

    利用promise结合数组的rduce方法 let arr = [1, 2, 3]; arr.reduce((pre, cur) => { return pre.then(() => { ...

  6. 题解-Happy New Year

    题解-Happy New Year Happy New Year 给定 \(n\),\(m\) 和 \(k\).有一个序列 \(a\{m\}\) 初始值为 \(0\).有 \(n\) 种操作,每种可以 ...

  7. egg的基本使用

    一.脚手架(可以快速生成项目) 1.新建一个项目文件夹,使用如下命令: 2.npm  init  egg  --type=simple 3.npm i 它会根据package.json里记录的所需包进 ...

  8. Java并发编程的艺术(五)——线程和线程的状态

    线程 什么是线程 操作系统调度的最小单元就是线程,也叫轻量级进程. 为什么要使用多线程 多线程程序能够更有效率地利用多处理器核心. 用户响应时间更快. 方便程序员将程序模型映射到Java提供的多线程编 ...

  9. 学习笔记: mysql增删改查基础语句

    mysql基础入门语句 增: INSERT INTO 表名(字段1, 2, 3) VALUES('值1', '2', '3') 删: DELETE FROM 表明 WHERE 删除条件 不提供更新条件 ...

  10. Hyper-v 虚拟机使用NAT方式连接网络

    最近因为搞docker的原因,卸掉了vb和vm,用上了hyper. 其实一直挺喜欢hyper-v的,但是一直都受虚拟网络的影响--hyper-v创建不了vm和vb使用的那种NAT连接方式. 默认使用外 ...