一般情况来说:

0代表行首,$代表行末

$,G代表最后一行

光标移动

0 移动到本行最前面

$ 移动到本行最后

G 移动文件最后一行

nG 移动到文件第n行

gg 移动到文件第一行

n【space】移动这一行的第n个字符

n【enter】移动n行

H屏幕第一行

M屏幕中间一行

L屏幕最后一行

查找和替换

/word 查找word

?word 查找word,不过是向上查找

n 向下重复上一个查找

N 向上重复下一个查找

:n1,n2s/word1/word2/g 替换

:1,$s/word1/word2/g 第一行到最后一行的替换

因此多行注释的方法就是:

:n1,n2s/^/#/g

删除多行注释的方法就是

:n1,n2s/#//g(还是:n1,n2s/^#//g)

删除,复制和粘贴

dd 删除当前行

ndd删除当前行之后所有n行

dG删除当前行到最后一行

d1G删除当前行到第一行

d0删除光标值第一个字符

d$ 删除光标至当前行最后一个字符

yy 复制当前行

nyy复制当前行之下的n行

y1G复制当前行至第一行

yG 复制当前行之最后一行

y0 复制当前字符至本行首个字符

y$ 复制当前字符至本行最后一个字符

p 将复制内容粘贴至当前行的下一行

重复、撤销等操作

j 将光标所在行和下一行数据合并

. 重复上一个操作

u 撤销上一个操作

【ctrl】+r 重复上一个操作

其他命令行操作

:wq! 强制保存退出

:w【filename】 相当于另存为

:r[filename] 将filename的内容加到光标所在行的后面

:n1,n2 w[filename]将n1至n2行的内容保存到filename文件中

:set nu 设置行好

:set nonu 取消行好

vi的选择功能:

v 字符选择,将光标经过的地方反白

V  行选择,光标经过的行反白

[ctrl]+v 块选择

y 将反白的地方复制起来

d 将反白的地方删除

vi 多文件编辑功能

之前碰到过这种情况,将文件一中某些行复制粘贴到文件二中,格式会乱掉

此时,可以利用i同时打开多个文件vi -o file1 file2 file3

:file 显示当前所有文件

:n 编辑下一个文件

:N 编辑上一个文件

[ctrl] +w 也可在多文件之间切换

这样就可以采用上面的快捷方式,如同在一个文件中操作

windows以CRLF(^M$)换行,linux以$换行,转换的时候可以采用dos2unix、unix2dos命令

除了vi之外,如果仅仅是查看一个文件,还有cat、tac、nl等方式,并可以通过参数设置是否显示行号,时候显示断行、【tabl】等看不见的字符。

vi的多窗口编辑和参数设置

如果编辑的文件篇幅过大时,可能需要vi多窗口编辑功能,

打开一个文件,:sp可以实现多窗口切换【ctrl】+w可以进行窗口之间的切换

对于vi环境参数的设置等,可以参照linux私房菜的p287

对于编码或者语系编码转换,同上

常用的vi快捷方式的更多相关文章

  1. linux:终端常用命令 + vi命令修改文件及保存 方法

    首先介绍一下Ubuntu下各个目录的一般作用: /  这就是根目录,一台电脑有且只有一个根目录,所有的文件都是从这里开始的.举个例子:当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录 ...

  2. 我常用的Vi命令

    Vi对于linux的重要性和受欢迎的程度在此一律不表.此刻互联网上不少介绍vi的文章和博客,相信写得比我好的也不在少数.然而为什么我依然写这样一篇文章呢?我对linux知识和了解也都来自于互联网,很难 ...

  3. 【原创】一些常用的Vi命令,可帮助脱离鼠标

    使用Vi编写代码时,如果想脱离鼠标,需要使用一些命令快捷键,下面罗列了一些常用的并且容易记住的: 1. 命令模式下,移动光标或跳转 0到行首 ^到行首第一个非空字符 $到行尾非空字符 fx向后移动光标 ...

  4. 【转】一些常用的Vi命令,可帮助脱离鼠标

    使用Vi编写代码时,如果想脱离鼠标,需要使用一些命令快捷键,下面罗列了一些常用的并且容易记住的: 1. 命令模式下,移动光标或跳转 0到行首 ^到行首第一个非空字符 $到行尾非空字符 fx向后移动光标 ...

  5. 常用的vi/vim基本命令(持续更新)

    ★删除/复制/粘贴 全部删除:按esc后,然后dG  全部复制:按esc后,然后ggyG  全选高亮显示:按esc后,然后ggvG或者ggVG   按“+p“可将系统全局粘贴板里的内容粘贴进来   y ...

  6. 不常用的vi命令

    vi u 撤回ctrl+r 撤回的撤回 全文替换%s/old/new/g 指定行区间替换12,15s/old/new/g c替换前确认12,15s/old/new/gc 用#代替分隔符,用户关键字有/ ...

  7. mac bash 下使用vi 快捷方式——因为没有alt键 所以没有办法 用vi模式也非常方便的

    set -o emacs ##切到emacs模式 set -o vi ##切到vi模式 set -o ## 查看当前选项的设置状态 所以你只需要在.bashrc下加入 set -o vi 然后,使用E ...

  8. 常用的vi的命令模式下的快捷命令

    知识点 在VI命令模式下:y 表示拷贝, d 表示删除,p标识粘贴 1.删除 dw 表示删除从当前光标到光标所在单词结尾的内容. d0 表示删除从当前光标到光标所在行首的内容. d$ 表示删除从当前光 ...

  9. IOS 制作常用代码的快捷方式

    输入可以变的对象或类型,要用<#name#>

随机推荐

  1. Cookie、Session和LocalStorage

    前记 前面我已经写了一篇关于Cookie的文章,但是那时候我其实理解的并不是很深刻,会有些搞不懂的地方,今天我就再写一次,博客也是我的学习笔记 Cookie Cookie是服务器发送到用户浏览器并保存 ...

  2. Javaweb实训-宠物医院-社区宠物医院的页面样式

    /* CSS Document */      /*        对于CSS来说  每一个元素默认的margin和padding就是0px.但是不同的浏览器会有一个默认的浏览器样式修改默认的marg ...

  3. 【Linux】C字节对齐

    原文地址:https://www.jianshu.com/p/e8fcc01041a7 什么是对齐,以及为什么要对齐: 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问 ...

  4. Linux服务器应急事件溯源报告

    Linux服务器应急事件溯源报告 小博博 · 2016/02/18 17:43 Author:Inn0team 0x00 目录 关于目标环境的中间进度检测报告 一:情况概述 二:取证情况 2.1 目标 ...

  5. 阿里服务器+Centos7.4+Tomcat+JDK部署

    适用对象 本文档介绍如何使用一台基本配置的云服务器 ECS 实例部署 Java web 项目.适用于刚开始使用阿里云进行建站的个人用户. 配置要求 这里列出的软件版本仅代表写作本文档使用的版本.操作时 ...

  6. VMware安装,安装CentOS 6.3 ,安装CentOS 7_1511_mini

    VMware安装包+汉化包+序列号 百度云链接:https://pan.baidu.com/s/1c8ZsZc9ySdCdxrywFO4eUA 提取码:iq7k 打开 VMware Workstati ...

  7. thinkphp+webuploader实现大文件分片上传

    大文件分片上传,简单来说就是把大文件切分为小文件,然后再一个一个的上传,到最后由这些小文件再合并成原来的文件 webuploader下载地址及其文档:http://fex.baidu.com/webu ...

  8. Windows XP硬盘安装Ubuntu 16.04双系统图文详解

    需要下载的东西有两个,一个是grub4dos,另一个是Ubuntu 16.04 LTS的镜像文件,具体下载地址如下:   1 2 3       1.grub4dos  点击下载 grub4dos 2 ...

  9. Librepilot-创建UAVObject及编译到飞机端和地面站端的步骤

    1. 创建UAVObject描述文件(xx.xml),并存放到\librepilot\shared\uavobjectdefinition目录中:2. 在\librepilot\flight\targ ...

  10. Qualcomm_Mobile_OpenCL.pdf 翻译-10-总结

    这篇文档主要是介绍了关于在Adreno GPUs上优化OpenCL代码的详细方法.文档中提供的大量信息能够帮助开发者理解OpenCL基础和Adreno结构,还有最重要的,掌握OpenCL优化技能. O ...