一、概述

vi: Visual Interface 可视化接口

vim: VI iMproved VI增强版

全屏编辑器,模式化编辑器

vim模式:

  • 编辑模式(命令模式)
  • 输入模式
  • 末行模式

模式转换:

编辑-->输入:

    i: 在当前光标所在字符的前面,转为输入模式;【常用】
a: 在当前光标所在字符的后面,转为输入模式;
o: 在当前光标所在行的下方,新建一行,并转为输入模式;
I:在当前光标所在行的行首,转换为输入模式
A:在当前光标所在行的行尾,转换为输入模式
O:在当前光标所在行的上方,新建一行,并转为输入模式;

输入-->编辑:按  ESC

编辑-->末行:按  :

末行-->编辑:按 ESC, ESC

注:输入模式和末行模式之间不能直接切换

二、命令操作

1、打开文件

  vim aa.txt

2、保存或退出:末行模式关闭文件:【按 ESC 键,然后输入 : 跳到末行模式】

  :w 保存文件但不退出vi

  :w file 将修改另外保存到file中,不退出vi

  :w! 强制保存,不推出vi

  :wq 保存文件并退出vi  桶 :x

  :wq! 强制保存文件,并退出vi

  q: 不保存文件,退出vi

  :q! 不保存文件,强制退出vi

  :e! 放弃所有修改,从上次保存文件开始再编辑

编辑模式下退出

  ZZ: 保存并退出

3、删除:非编辑模式下【按ESC键 跳到命令模式,然后:】

  dd:删除游标所在的一整行(常用)

  ndd:n为数字。删除光标所在的向下n行,例如20dd则是删除光标所在的向下20行

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

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

  d$:删除光标所在处,到该行的最后一个字符

  d0:那个是数字0,删除光标所在到该行的最前面的一个字符

  x,X:x向后删除一个字符(相当于[del]按键),X向前删除一个字符(相当于[backspace]即退格键)

  nx:n为数字,连续向后删除n个字符

4、翻屏

  Ctrl+f: 向下翻一屏

  Ctrl+b: 向上翻一屏

  Ctrl+d: 向下翻半屏

  Ctrl+u: 向上翻半屏

5、撤消编辑操作 u

  u:撤消前一次的编辑操作

  #u: 直接撤消最近#次编辑操作

  连续u命令可撤消此前的n次编辑操作

  撤消最近一次撤消操作:Ctrl+r

6、可视化模式

  v: 按字符选取   V:按矩形选取

7、查找

  /PATTERN  或 ?PATTERN

  n 下一个  N 上一个

8、查找并替换

  在末行模式下使用s命令

  headline,footlines#PATTERN#string#g

  1,$:表示全文

  %:表示全文

9、

三、其他扩展

1、显示或取消显示行号

  :set nu

  :set nonu

  mu = number

2、显示忽略或区分字符大小写

  :set ic

  :set noic

  ic = ignorecase

3、设定自动缩进

  :set ai

  :set noai

  ai = autoindent

4、查找到的文本高亮显示或取消

  :set hlsearch

  :set nohlsearch

5、语法高亮

  :syntax on

  :syntax off

注:特性当前有效,如果想要永久有效需修改配置文件

  /etc/vimrc 针对所有用户

  ~/.vimrc 针对当前用户

008-linux shell vim使用的更多相关文章

  1. Linux Shell Vim 经常使用命令、使用技巧总结

    前言 本文总结了自己实际开发中的经常使用命令,不定时更新,方便自己和其它人查阅. 如有其它提高效率的使用技巧.欢迎留言. 本文地址 http://blog.csdn.net/never_cxb/art ...

  2. 73条日常Linux shell命令汇总,总有一条你需要!

    转载: 73条日常Linux shell命令汇总,总有一条你需要! 1.检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 && echo &q ...

  3. Linux shell用法和技巧(转)

    原文出处: techbar   译文出处: 外刊IT评论 使用Linux shell是我每天的基本工作,但我经常会忘记一些有用的shell命令和技巧.当然,命令我能记住,但我不敢说能记得如何用它执行某 ...

  4. Linux Shell 数学运算

    Linux Shell 数学运算 在Linux中直接使用数学运算符进行数学运算往往得不到我们想要的计算结果.要在Shell中进行数学运算,我们需要借助点小手段.目前,Linux Shell中进行数学运 ...

  5. Linux shell 常用

    使用Linux shell是我每天的基本工作,但我经常会忘记一些有用的shell命令和l技巧.当然,命令我能记住,但我不敢说能记得如何用它执行某个特定任务.于是,我开始在一个文本文件里记录这些用法,并 ...

  6. linux shell突然显示-bash-4.1#的解决方法

    老沙昨天还登录这个linux服务器,并且命令行好好的,今天突然在linux shell中不显示路径了,显示为-bash-4.1#. 以下是老沙的解决方案 vim ~/.bash_profile 如果没 ...

  7. Linux shell用法和技巧

         使用Linux shell是我每天的基本工作,但我经常会忘记一些有用的shell命令和l技巧.当然,命令我能记住,但我不敢说能记得如何用它执行某个特定任务.于是,我开始在一个文本文件里记录这 ...

  8. linux —— shell 编程(整体框架与基础笔记)

    导读 关于shell编程基础的学习,网上有很多资源,如果在校图书馆应该也有一些教程,所以这里对于零碎的基础不做详细记录,而只是对一些常用的概念.命令与操作做一个简要的记录,以备方便查找. (本文所有语 ...

  9. Linux shell日常命令和技巧

    转自:http://www.vaikan.com/linux-shell-tips-and-tricks/ 原文:http://www.techbar.me/linux-shell-tips/ 使用L ...

  10. Linux shell用法和技巧(转)

    使用Linux shell是我每天的基本工作,但我经常会忘记一些有用的shell命令和l技巧.当然,命令我能记住,但我不敢说能记得如何用它执行某个特定任务.于是,我开始在一个文本文件里记录这些用法,并 ...

随机推荐

  1. 解决网页刷新时,隐藏div元素闪现问题

    最近项目遇到一个问题,需要对一个div中的元素设置根据不同的情况进行显示和隐藏. 因为默认该div是显示的,所以在刷新页面的时候,会先加载这个div进行显示,加载完成后又执行到 hide() 方法,使 ...

  2. Letsencrypt.org CA免费证书生成

    Letsencrypt.org CA免费证书使用 Let's 支持多中客户端,这里使用acme.sh客户端配置免费证书. acme.sh优点: github官方地址 纯用Shell(Unix外壳)语言 ...

  3. UGUI和NGUI的优化分享

    学习资料 来自UWA的分享,针对于Unity 4.x 及5.3 以下版本,Unity5.5及更高版本可能适用. 文章:UWA技术直播视频集锦 UGUI &NGUI http://blog.uw ...

  4. php门面模式(facade pattern)

    书上不全的代码,我自己补全的. <?php /* The facade pattern is used when we want to simplify the complexities of ...

  5. 2019年牛客多校第二场 F题Partition problem 爆搜

    题目链接 传送门 题意 总共有\(2n\)个人,任意两个人之间会有一个竞争值\(w_{ij}\),现在要你将其平分成两堆,使得\(\sum\limits_{i=1,i\in\mathbb{A}}^{n ...

  6. Css背景设置 、

    每天进步一小步,一年进步一大步. 第一次发博客园文章,主要记录自己学习的一个过程. CSS3 背景 CSS3 包含多个新的背景属性,它们提供了对背景更强大的控制. background-size ba ...

  7. 音视频RTP数据包封装

    对于语音通信而言,语音码率较低,添加适当冗余是对抗网络丢包的常见方式.冗余方式有多种,包括RED,FEC等都是冗余的一种,如果冗余份数较多,可以采取交织的方式实现.RFC 3350是RTP的基础标准协 ...

  8. jquery ajax在ie9下跨域不执行 crossDomain: true == !(document.all)

    <!DOCTYPE html> <html> <head> <title>jQuery CORS in IE7 - IE10</title> ...

  9. uni验证码60秒倒计时

    其实要实现这个功能原理非常简单,就是setInterval+setTimeout+clearInterval结合使用,首先在data里定义一个变量second,初始值为60,然后在setInterva ...

  10. SSFOJ P1453 子序列(一) 题解

    每日一题 day61 打卡 Analysis las数组表示的是最近一个为j的位置为是什么. dp数组的含义是以str[i]为结尾的子序列数量. 于是有状态转移方程: dp[las[i][j]]+=d ...