博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vi 编辑器常用命令
阅读量:3952 次
发布时间:2019-05-24

本文共 1775 字,大约阅读时间需要 5 分钟。

vi编辑器的基本命令

  1. 打开和编辑一个文件 : sudo vi hello

  2. 编辑定位 sudo vi hello.py + 16

    然后跳到第16行

  3. 3种模式【命令模式(入口),末行模式(出口),编辑模式】

    命令模式 ——> 按 i 编辑
    —> 按:末行
    按 ESC —> 命令模式
    命令模式中 --> 按 dd 删除一整行
    x 删除光标后的字符
    h左,j下, k上 l右

dw删除光标后

末行模式:

按 w 保存
按 q 退出,没保存不退出
按 wq或 x, 保存并退出

方向移动:

h(键盘最左边:向左移动一个字符)
l(键盘最右边: 向右边移动一个字符)
j(没什么技巧: 向下)
k(向上)
0(移动到最左边,也就是该行的第0个字符前)
b(向左移动一个单词) w(向右边移动一个单词)
shift+4 也就是$ —> 跳到行尾
shift+6 即 ^ 跳到行首(不是空白字符的位置)

删除命令:

dw(delete a word: 从光标处删除到单词末尾)(单个w是跳下一个单词)

d0( 从光标处删除到0位置)
d} ( 先按一下d ,然后 shift+] 从光标处删除到段落结尾 )
ndd (从光标处开始 删除 n行,默认n 为1)
D (删除至行尾)
x (等于剪切)
d’a 删除标记a和光标之间的所有代码

跳行命令

Ngg (go go 跳到第N行,N默认为0)

G (直接跳到最末尾,整篇文章的最后面)
:N (跳到第N行)
sudo vim hello.py +N (从终端打开文件直接跳到N行)
***标记跳行: *** (按m 然后输入一个字母,翻到另一页,按’+字母,跳回来 字母:m记 mark)

跳(翻)页命令

ctrl+b(back 上一页)

ctrl+f (forward 下一页)
H (Head 屏幕顶部)
M (屏幕中间)
L (low 屏幕底部)

选中命令:

v 可视模式

V 可视行(直接选一行)
Ctrl+v (可视块,竖直方向选择)

复制命令

yyNp (复制光标所在行,插入N遍)

y{移动命令} (copy的最后一个字母,要配合移动命令使用 复制)
p (paste 粘贴)
yy(复制当前行)

恢复命令

u 回复一次(直到vi打开文件的状态)

ctrl+r redo

段落移动

注意:一个空行就是一段(vi就是这样区分的)

  1. { 上一段 (键盘: shift+[ )
  2. } 下一段 (shift + ] )

重点: shift+5(%) 光标直接跳到这一行的括号处

命令 d、x类似于 剪切操作 ctrl+x ,放到缓冲区

但是 vi的缓冲区和 系统的剪切板不是同一个,不能用 p命令之间粘贴,要在编辑模式点鼠标右键粘贴

替换命令

r 即replace 命令模式

R 替换模式(之间修改整个单词,即光标后面的所有都直接替换)
整体替换:

  1. 替换可视区域

    s/旧串/新串/g
  2. 一次替换所有

    %s/旧串/新串/g

例子: %s/wfsdf/world/g

  1. 确认替换: %s/python/java/gc
    a 替换所有
    q 退出
    l 替换最后一个,并且移动到行首
    ^E 向下滚屏
    ^Y 向上滚屏

缩进

">> "向右边缩进

“<<” 向左边缩进
. 重复上一次缩进

查找

/str 查找str

n 查找下一个
N 查找上一个

  • 直接匹配单词查找(向下)

向上匹配

插入命令

i: 在点前字符前插入文本

I: 行首
a: 当前字符后 append 文本
A: 在这一行的尾 加文本(直接跳到行尾部添加代码)
o : 在当前行后面加入一空行
O 当前行前插入一空行

A和I 要记牢

重点: 一个响指注掉多行代码

按 ctrl+v ,竖直选中多行开头,shift+i 然后#,然后esc

末行扩展

:e 跳到到当前目录的文件
:n 新建文件
:w 另存为(默认保存,输入其他名字就另存为),不会切换文件
:x 保存退出

vi编辑器的分屏命令:

:sp split 横向分屏
:vsp vertical split 纵向分屏

ctrl+w:

r 替换两个屏幕的位置
w 切换分屏的另一个位置
c close退出屏幕,但是不关闭最后一个
q quit 退出当前窗口,如果最后一个就关闭
o other 关闭其他窗口

转载地址:http://uauzi.baihongyu.com/

你可能感兴趣的文章
git patch 使用
查看>>
如何进行Linux Kernel 开发
查看>>
技术人攻略访谈二十九:平行世界守护者
查看>>
制作initramfs/initrd镜像
查看>>
浅析busybox查找命令和调用相应命令函数的实现流程框架
查看>>
利用linux dd和tr命令生成特定的数据
查看>>
Fundamentals of battery fuel-gauging
查看>>
armlinux内核启动--内存初始化管理
查看>>
rk3188--4.android用initrd文件系统启动流程
查看>>
rk3188--3.initramfs_data.cpio的生成及使用
查看>>
小议基于Android平台的流媒体播放器的设计 转载
查看>>
linux 2.6 输入子系统 键盘驱动的实现
查看>>
Linux Input Device
查看>>
学习ARM+Linux的很好的资料
查看>>
linux spi子系统 驱动分析续
查看>>
linux设备模型深探
查看>>
SPI设备的驱动
查看>>
Linux 2.6下SPI设备模型--------基于AT91RM9200分析
查看>>
struct device 结构
查看>>
S3C2440上触摸屏驱动实例开发讲解
查看>>