Ubuntu上的编辑器有gedit、vi、sublime等。gedit一般在没有其他编辑器时临时使用,大部分情况下,vi和sublime使用的比较多,Linux系统内置了vi和sublime,其中,sublime是可视化的编辑器可以通过鼠标操作可以实现各种功能,学习起来比较容易,这里就不作赘述。今天主讲的是非可视化的编辑器vi,提到vi编辑器既让人爱又让人恨。学会vi编辑器的程序猿爱死了vi,新手恨死了vi。接下来就系统的讲解下VI编辑器,供大家参考查询。

  vi又叫vim,这两个是一样的。

  vi编辑器有三种状态:命令模式、末行模式、编辑模式。

  首先我们来打开一个vi文件test.py,命令是 vi test.py,这里必须说明,如果test.py已经存在,那么执行vi test.py命令之后会自动创建一个空白文件,如果在文本中输入了内容,并且保存了,那么文件就自动创建。如果当前文件夹中存在test.py文件,则打开当前的test.py文件。

  接下来我们来了解vi的三种模式:

  1、命令模式

  当我们用vi 命令打开一个文件时,默认处于命令模式,命令模式的含义是当前可以通过在键盘输入各种按键命令实现编辑当前打开文档的操作。需要主要的是,当前按键操作是不会显示在终端上,但命令的执行效果会显示在当前编辑的内容上(这是很多新手刚接触vi时记不住命令模式对应功能键的关键,人都是所见所得的动物,但一定要明白,坚持敲几天就熟练了,原谅自己起步笨是进步的前提)。部分常用的命令如下:

  dd:删除光标所在当前行

  ndd:删除光标所在行在内及其下的n-1行,共n行内容。如5dd,删除光标所在行其下面4行内容。(ubuntu中dd实际上相当于windows中的剪切,如果按p键可以粘贴刚才删除的内容

  d0:(0是数字)从光标处前一个字符删到当前行首

  D:删除光标位置到行尾的全部内容。实际上也是剪切。

  yy:复制当前行内容,用p键粘贴

  nyy:复制光标当前行及其下n-1行,共n行内容,用p键粘贴。如5yy,复制光标所在行及其下4行内容。

  p:粘贴复制或者剪切的内容到当前光标所在行的下一行

  P:粘贴复制或者剪切的内容到当前光标所在行的上一行

  u:撤销上一步操作。和windows里面的Ctrl + Z功能类似。

  Ctrl + r:返撤销操作

  x:删除光标所在位置的单个字符,向行尾方向删除,光标前面字符不变。

  X:删除光标所在位置前面的单个字符,向前行首删除,光标后面字符不变。

  r:修改光标所在位置的单个字符。

  R:替换光标所在位置及其后的字符,光标自动后移

  h:光标左移     j:光标下移动  k:光标上移  l:光标右移 (实际上小键盘旁的上下左右方向键也可以移动)

  v:可视化选取,单个选中,从光标向后选中,按照字符来选中(左右键),也可选中行(上下键),选中之后如果右移选中部分:shift + >  如果左移选中部分:shift + <

  V:可视化选取,选中一片,从光标所在行开始选中,按照最小单位行来选中(上下键),选中之后如果右移选中部分:shift + >  如果左移选中部分:shift + <  (V这个一般用的多点)

  .:这个键和“>”在同一个键盘位上,表示重复上一步操作,经常与移动选中部分搭配使用,来重复向左或向右移动多次

  ZZ:保存当前文档并退出vi编辑器

  0:(数字0)跳到当前行首位置

  $:跳到当前行末位置

  G:跳到文档末行的行首位置

  gg:跳到文档首行的行首位置

  nG:快速跳到某一行行首,比如5G,快速跳到第五行行首位置

  H:光标跳到当前屏幕显示部分的首行行首

  M:光标跳到当前屏幕显示部分的中间行行首

  L:光标跳到当前屏幕显示部分的末行行首

  Ctrl + f:向文末翻一屏代码

  Ctrl + b:向文首翻一屏代码

  Ctrl + m:向文首翻半屏代码

  Ctrl + d :向文末翻半屏代码

  w:向行尾每次跳一个单词的长度

  dw:删除一个单词

  b:向行首每次跳一个单词长度

  以上就是我常用的键盘命令,掌握以上这些基本就可以了。

  另外需要注意的是在命令模式下:Ubuntu终端字体变大:Ctrl + Shift + T 同样适用,字体变小:Ctrl + -

  2、末行模式:

  vi打开编辑时默认状态是命令模式,进入末行模式的用:再加上命令。这时输入的命令在页面显示底端。

  :w :保存当前文档,不退出vi编辑器(这个命令是实际开发中用的多,比如同时开三个终端,一个编辑代码,一个运行代码,一个用python的交互模式,三个终端生成快捷键Ctrl + Shift + T,终端之间切换用Alt + 1、Alt + 2、Alt + 3)

  :q :不保存已有的编辑,退出vi编辑器

  :wq :保存编辑并退出

  :x :保存并退出(这个命令比:wq用的多)

  :/hello :搜索hello,hello可以换成其他字符 在搜索字符时输入命令后,可以向上搜索(N 键),也可以向下搜索(n键)

  :set nu:设置显示左侧行号(永久显示行号一般都在系统中改变配置文件/etc/vimrc,添加:set nu即可,如果修改必须获取文件权限,多以root权限去修改

  :set nonu:取消左侧行号限制(这个功能很少用)

  :%s/hello/world/g:替换全文的hello为world

  :11,16s/hello/world/g:将11-16行中的hello替换为world

  末行模式知道这些常用的即可,不记得的时候查一下,多使用就习惯了。

  3、编辑模式

  编辑模式是最简单的模式,正常的如txt文本般编辑即可,没有多大的特殊之处。这里要讲的是怎么从命令模式切换到编辑模式时不同命令光标插入的位置不同。

  如果当前是末行模式必须先切换到命令模式才能进入编辑模式,末行模式到命令模式:ESC键   末行模式和编辑模式之间不能直接切换,只能通过命令模式过渡。

  命令模式切入编辑模式命令如下:

  i:从光标处之前插入

  I:跳到光标所在行行首插入

  a:从光标之后插入

  A:跳到光标所在行行末插入

  o:(字母o)在光标所在行,及其下一行之间新增一空白行,光标跳到空白行行首

  O:(字母O)在光标所在行,及其上一行之间新增一空白行,光标跳到空白行行首

  以上的命令实际上是命令模式下敲入的,但和编辑模式最为紧密,所以放到编辑模式里面讲。

  编辑模式回到命令模式用ESC键,熟练掌握了vi之后都是在这个三个模式之间切换,还是很方便的。

  以上的说明是常用的功能,vi编辑器更能远不止如此,掌握基本功能在实际开发中遇到新需求可以很快掌握。

  以上不足和编辑错误之处,望评论指正,多多交流!

  

  

  

  

  

新手入门之——Ubuntu上的编辑器之神Vi / Vim的更多相关文章

  1. 随处可编辑的编辑器之神VIM

    据说这世界上只有三种编辑器:Vim,Emacs 和 其他编辑器,其中 Vim 被称作编辑器之神,Emacs 被称作神的编辑器,当然,其他编辑器永远只能是其他编辑器. 拿一位 网友的话 来说,VIM 的 ...

  2. 工欲善其事:编辑器之神Vim(一)

    本篇文章收集了Vim最常用和实用的一些命令,掌握这些命令就可以使用Vim了 本文仅列举个人认为常用的命令,本系列文章更像是自己的学习笔记,而不是VIM使用教程. 如果你想了解vim的更多,可以看看Co ...

  3. vim 让人爱不释手的编辑器之神

    VIM 基本介绍 vim诞生已有20多年,它常被人称之为编辑器之神,vim的操作理念可以说是独具一格而又出类拔萃,使用vim能极大的提升文本处理效率,因此熟练掌握vim应该是每个程序员都应该做到的事情 ...

  4. Win10系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境(2020年最新攻略)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_160 众神殿内,依次坐着Editplus.Atom.Sublime.Vscode.JetBrains家族.Comodo等等一众编辑 ...

  5. Ubuntu学习小结(二)PostgreSQL的使用,进程的查看关闭,编辑器之神Vim入门

    距离上次发布文章已经过去了很久.在过去的半年中,虽然写的代码不多,但是在接触了计算机一些其他的知识,包括数据库.网络之后,感觉能够融会贯通,写代码水平又有了一定的提高.接下来,将会发表几篇文章,简单介 ...

  6. 优测优社区干货精选|老司机乱谈编辑器之神——vim

    文 / 腾讯 吴双 前言 优测小优 有话说: 腾讯优测只有应用测试大神?不不不,我们还有各种研发大牛! *** vim 是一种信仰,我自从2004年有了这个信仰,已经12个年头了.本文介绍了学习vim ...

  7. 编辑器之神VIM 总结(一) 基础部分

     版本号 说明 作者 日期  1.0  vim基础知识 Sky Wang 2013/06/19       概要 vim和emacs,一个是编辑器之神,一个是神一样的编辑器.他们被称是UNIX系统下的 ...

  8. Emacs和Vim:神的编辑器和编辑器之神, 到底哪个更好?

    Emacs和Vim:神的编辑器和编辑器之神, 到底哪个更好? 在这个蔚蓝色的星球上,流传着两大神器的传说:据说Emacs是神的编辑器,而Vim是编辑器之神. 一些人勇敢地拾起了Vim或Emacs,却发 ...

  9. 4-2 编辑器之神--vim

    vim vi:Visual editor文本编辑器 文本:ascii,Unicode vim:VIsual editor iMproved 官网:www.vim.org 帮助网站:Vimhelp.or ...

随机推荐

  1. Zabbix日常监控(win_agent方式)

    参考博文:https://www.cnblogs.com/xqzt/p/5130469.html https://www.cnblogs.com/zoulongbin/p/6395047.html 本 ...

  2. django 错误之 OSError: mysql_config not found

    pip 导入包时出现如下错误 Complete output from command python setup.py egg_info: /bin/: mysql_config: not found ...

  3. #001 WebStrom SVN使用技巧

    WebStrom中SVN 的一些使用技巧 2016-03-23 17:11:52 星期三 使用SVN的目录,是为了来管理代码的版本. 服务端语言 都有比较完善的IDE,前端JS代码,由于之前一直都用 ...

  4. U-Mail邮件群发触发器功能助力营销自动化

    小编在朋友圈看到的人工智能讨论越来越多,越来越多的上班族惶恐不安,担心自己的饭碗不保将被人工智能所取代,这说明智能化.自动化正成为各行业的趋势,营销也概莫能外.营销的自动化意味着将大大节省从业人员的精 ...

  5. 【译文】MySQL InnoDB 使用的锁分析

    InnoDB 使用的 锁类型 共享锁和排它锁 意向锁 记录锁 间隙锁 Next-key 锁 插入意向锁 AUTO-INC 锁 共享锁和排他锁 InnoDB实现了俩个标准的行级锁,共享锁和排它锁. 共享 ...

  6. Java 替换空格

    题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 解一: 由于最近在学习Head F ...

  7. Hive学习之路 (三)Hive元数据信息对应MySQL数据库表

    概述 Hive 的元数据信息通常存储在关系型数据库中,常用MySQL数据库作为元数据库管理.上一篇hive的安装也是将元数据信息存放在MySQL数据库中. Hive的元数据信息在MySQL数据中有57 ...

  8. 多线程之Timer和TimerTask

    Timer是一种线程设施,用于安排以后在后台线程中执行的任务.可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask.TimerTask是一个抽象类,实现了Runnabl ...

  9. liunx 安装maven

    cd /usr/local mkdir maven cd /usr/local/maven wget https://archive.apache.org/dist/maven/maven-3/3.1 ...

  10. Entity Framework Code First 遭遇主键自动生成问题

    4.0后就没有去跟踪后面的版本了.现在直接开始用5.0没想到在做User的GURD时就遭遇insert不进数据问题. ISet<User>.Add(user);_context.SaveC ...