Vi 分三种模式:一般模式,编辑模式,和命令模式

  • 一般模式: 光标移动,搜索与替换,删除,复制,粘贴
  • 编辑模式:插入或者替换文本
  • 命令模式:读取、保存文件

一般模式

光标移动:

h(左), j(下), k(上), l(右),30j表示向下移动30行

n<space>, 光标向后移动n个字符距离

0或者Home,移动到这一行最前一字符处

$或者End,移动到这一行的最后面字符处

G,文件最后一行

gg,文件的第一行

nG或者:n,文件第n行

N[Enter]:光标向下移动n行

搜索:

/word, 向下寻找word

?word, 向上寻找word

n,搜索下一个

N,方向搜索下一个

:n1,n2s/word1/word2/g,在第n1与n2之间寻找word1,并将该字符替换为word2

:1,$s/word1/word2/g,从第一行到最后一行查找word1,并替换为word2

删除:

x, X, x向后删除一个字符,X向前删除一个字符

nX, 连续向后删除n个字符

dd, 删除所在行,ndd删除向下n行

d1G,删除光标所在到第一行的所有数据

dG,删除光标到最后一行的所有数据

d$,删除光标所在到改行最后一个字符, d0同理

复制:

yy,复制光标所在的那一行;nyy,向下复制n行

y1G,yG, y0, y$ 同删除

粘贴:

p, P, p复制的数据数据在光标下一行粘贴,P粘贴在上一行

J, 光标所有行与下一个行数据结合成同一行

编辑模式

常用模式

命令模式

:set nu,显示行号

:set nonu,取消行号

vi 的使用的更多相关文章

  1. 在docker容器中vi指令找不到

    在使用docker容器时,有时候里边没有安装vi,敲vi命令时提示说:vi: command not found,这个时候就需要安装vi,可是当你敲apt-get install vi命令时,提示: ...

  2. linux vi 命令大全

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...

  3. Cygwin中解决vi编辑器方向键和Backspace键不好使、安装vim的方法

    修改.virc文件(如果没有就创建)vi .virc 添加以下内容set nocpset backspace=start,indent,eol 保存退出:wq 如果是vim就修改.vimrc文件. 由 ...

  4. vi(vim)键盘图及其基本命令

    进入vi vi filename                打开或新建文件,并将光标置于第一行首 vi +n filename           打开文件,并将光标置于第 n行首 vi + fi ...

  5. vi安装Vundle+YouCompleteMe+注释快捷'scrooloose/nerdcommenter'

    Vundle is short for Vim bundle and is a Vim plugin manager. 从git上下载vundle $ git clone https://github ...

  6. vi学习总结

    1.模式 命令行模式:光标的移动.内容删除移动复制操作 插入模式:文字输入,即编辑状态 底行模式:文件保存或退出vi,设置编辑环境 2.基本操作 vi myfile,输入vi 文件名,,则进入vi. ...

  7. vim(vi)常用操作及记忆方法

    vi(vim)可以说是linux中用得最多的工具了,不管你配置服务也好,写脚本也好,总会用到它.但是,vim作为一个“纯字符”模式下的工具,它的操作和WINDOWS中的文本编辑工具相比多少有些复杂.这 ...

  8. vim vi Ubuntu

    在vi编辑模式下按退格键不能删除内容,按方向键不能上下左右移动?如果是则:1. 在vi里非编辑模式下按冒号进入到末行命令模式,然后输入set nocompatible,回车,然后在进入vi编辑模式,看 ...

  9. linux vi(vim)常用命令汇总

    1 查找 /xxx(?xxx) 表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示向上查找其中xxx可以是正规表达式,关于正规式就不多说了. 一般来说是区分大小写的, 要想不区分大 ...

随机推荐

  1. Jmeter添加硬件监控

    首先非常感谢介绍jmeter的博主,多谢您. 看了之后受益匪浅啊~~ 根据这篇博文的说法,首先进入网站 点击Jmeter-plugins.org 点击downloads 这两个都可以下载,反正都一样. ...

  2. Leetcode, construct binary tree from inorder and post order traversal

    Sept. 13, 2015 Spent more than a few hours to work on the leetcode problem, and my favorite blogs ab ...

  3. uva 129 krypton factors ——yhx

     Krypton Factor  You have been employed by the organisers of a Super Krypton Factor Contest in which ...

  4. [bzoj2653][middle] (二分 + 主席树)

    Description 一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整. 给你一个长度为n的序列s. 回答Q个这样的询问:s的左端点在[a,b ...

  5. Linux程序包管理.md

    rpm 简介 RPM包管理员(简称RPM,全称为The RPM Package Manager)是在Linux下广泛使用的软件包管理器.RPM此名词可能是指.rpm的文件格式的软件包,也可能是指其本身 ...

  6. [LeetCode] Valid Phone Numbers 验证电话号码

    Given a text file file.txt that contains list of phone numbers (one per line), write a one liner bas ...

  7. 【Git】error: RPC

    摘要 git push throws error: RPC failed; result=56, HTTP code = 200的解决办法   原因 默认 Git 设置 http post 的缓存为 ...

  8. 【BZOJ 1061】【Vijos 1825】【NOI 2008】志愿者招募

    http://www.lydsy.com/JudgeOnline/problem.php?id=1061 https://vijos.org/p/1825 直接上姜爷论文... #include< ...

  9. 82.Android之MVP+Retrofit+RxJava实践小结

    转载:http://wuxiaolong.me/2016/06/12/mvpRetrofitRxjava/ 关于MVP.Retrofit.RxJava,之前已经分别做了分享,如果您还没有阅读过,可以猛 ...

  10. <Script>放置位置

    html文件是自上而下的执行方式 css引入执行加载时,程序仍然往下执行 script脚本是则中断线程,待该script脚本执行结束之后程序才继续往下执行 页面效果实现类的js放在body之前,动作, ...