Linux知识(6)----VIM
vi的第一版是由Bill Joy在1978年写成的,当时他是UC Berkeley的学生。后来他共同创建了神奇的Sun公司。vi来源于visual一词,目标是在终端上可视化地模拟文本的编辑,是的更人性化。由于使用起来还是不太方便,后来Bram Moolenaar做了改进,成为vim(vi improved),因为得到了很大的提升,所以现在大多数Linux发行版都预装有vim。
为什么要用vim,因为被人们吐槽,诟病一堆,但那都是菜鸟的想法。试想当系统崩溃时,如何编写文件,恢复系统,最后还真只能通过vim来编辑脚本了。对于菜鸟来说,多少懂得点vim的命令,不会是多余的。vi的命令一大堆,要记住还真要反复的联系,实际用到的命令很少,这里罗列出一些常用的vim命令。
vim的文本编辑基本步骤是,启动vim,编辑文本,保存文本,退出vim。下面分别简单的介绍相关的命令。
1、启动vim
想要启动vim,只要简单的输入vi或者vim命令即可,命令如下:
$ vi
或
$ vim
或
$ vim testvim.txt
会输出以下的结果
VIM - Vi Improved
....
2、编辑文本
vim有两种模式,编辑模式和命令模式,vim启动时默认为命令模式,当处于编辑模式时,可以通过Esc按键切换到命令模式,在命令模式下,用户可输入相关的命令完成相应的操作,例如完成光标移动,文件保存和程序退出等操作。
2.1、插入模式
按下”i”按键进入插入模式。之后,我们应该 在屏幕底部看到下面一行,如果 vim运行在高级模式下(这不会出现在 vim 兼容模式下):
-- INSERT --
现在我们能输入一些文本了。试着输入这些文本:
Hello world, I am testing VIM text editor
按下 Esc 按键,退出插入模式并返回命令模式。
2.2、光标移动
vi提供了大量的移动命令,其中一些是与less阅读器共享的,部分命令如下表所示:
| 按键 | 移动光标 |
|---|---|
| l or 右箭头 | 向右移动一个字符 |
| h or 左箭头 | 向左移动一个字符 |
| j or 下箭头 | 向下移动一行 |
| k or 上箭头 | 向上移动一行 |
| 0 (零按键) | 移动到当前行的行首。 |
| ^ | 移动到当前行的第一个非空字符。 |
| $ | 移动到当前行的末尾。 |
| w | 移动到下一个单词或标点符号的开头。 |
| W | 移动到下一个单词的开头,忽略标点符号。 |
| b | 移动到上一个单词或标点符号的开头。 |
| B | 移动到上一个单词的开头,忽略标点符号。 |
| Ctrl-f or Page Down | 向下翻一页 |
| Ctrl-b or Page Up | 向上翻一页 |
| numberG | 移动到第 number 行。例如,1G 移动到文件的第一行。 |
| G | 移动到文件末尾的行首。 |
2.3、删除文本
删除文本中的内容,不认命令如下:
| 命令 | 删除的文本 |
|---|---|
| x | 当前字符 |
| 3x | 当前字符及其后的两个字符。 |
| dd | 当前行。 |
| 5dd | 当前行及随后的四行文本。 |
| dW | 从光标位置开始到下一个单词的开头。 |
| d$ | 从光标位置开始到当前行的行尾。 |
| d0 | 从光标位置开始到当前行的行首。 |
| d^ | 从光标位置开始到文本行的第一个非空字符。 |
| dG | 从当前行到文件的末尾。 |
| d20G | 从当前行到文件的第20行。 |
2.4、复制,剪切和粘贴
对文本中的内容进行复制,剪切和粘贴等操作,部分命令如下:
| 命令 | 复制的内容 |
|---|---|
| yy | 当前行。 |
| 5yy | 当前行及随后的四行文本。 |
| yW | 从当前光标位置到下一个单词的开头。 |
| y$ | 从当前光标位置到当前行的末尾。 |
| y0 | 从当前光标位置到行首。 |
| y^ | 从当前光标位置到文本行的第一个非空字符。 |
| yG | 从当前行到文件末尾。 |
| y20G | 从当前行到文件的第20行。 |
3、保存文本
切换到命令模式下,通过输入:键,按下冒号键之后,一个冒号:字符应该出现在屏幕的左下角,我们再冒号后面输入w字符(write),如果保存在已知的文件下,就不需要输入文件名了。然后按下回车Enter:
:w
或指定文件名保存
:w testvim.txt
文件将会写入到硬盘,并且我们应该在屏幕底部得到一个确认信息,就像这样:
"testvim.txt" [New] 1L, 42C written
4、退出vim
要退出vim,输入下面的命令(注意冒号:是命令的一部分):
:q
shell 提示符应该返回。如果由于某种原因,vi 不能退出(通常因为我们对文件做了修改,却没有保存文件)。 通过给命令加上叹号,我们可以告诉 vi 我们要强制退出 vi。命令如下:
:q!
参考资料
1、vi简介
Linux知识(6)----VIM的更多相关文章
- J2EE程序员应该要掌握的linux知识
J2EE程序员应该要掌握的linux知识 大型J2EE应用都在建构在linux环境下的.开发环境下我们可以通过samba映射成本地的网络驱动器,直接在windows环境下进行编程调试.但是最后的发布还 ...
- 夯实基础系列四:Linux 知识总结
前言 前三节内容传送门: 夯实基础系列一:Java 基础总结 夯实基础系列二:网络知识总结 夯实基础系列三:数据库知识总结 现在很多公司项目部署都使用的是 Linux 服务器,互联网公司更是如此.对于 ...
- Linux知识:/root/.bashrc与/etc/profile的异同
Linux知识:/root/.bashrc与/etc/profile的异同 要搞清bashrc与profile的区别,首先要弄明白什么是交互式shell和非交互式shell,什么是login shel ...
- Linux下面对于VIM编辑器的代码折叠使用与screen
VIM设置代码折叠 1. 折叠方式 可用选项 'foldmethod' 来设定折叠方式:set fdm=*****.有 6 种方法来选定折叠: manual 手工 ...
- My way on Linux - 知识梳理计划
知识梳理计划图 近期计划把自己学习的工作中用到的Linux知识梳理下,敬请期待.
- 欢迎关注我的微信公众账号:Linux技巧(微信号:irefactoring),一起学习Linux知识~~~
最近很少写博客了,一方面是近期工作比较繁忙,第二是把精力都放在GitHub和读源码去了. 申请了一个微信公众账号:Linux技巧 微信ID:irefactoring(意思是爱重构) ========= ...
- Linux系列教程(十)——Linux文本编辑器vim
通过前面几篇博客我们终于结束了Linux常用命令的介绍,Linux常用命令主要包括以下: ①.Linux文件和目录处理命令 ②.Linux链接命令和权限管理命令 ③.Linux文件搜索命令 ④.Lin ...
- 【转】Linux上vi(vim)编辑器使用教程
Linux上vi(vim)编辑器使用教程 ------------------------------------------------------------ ikong ------------ ...
- linux文本编辑器vim大全
linux基础之vim编辑器 1.vim编辑器 基本介绍 vim编辑器的前身叫做vi.vi的英文名:Visual Interface.中文解释文本编辑器,你不应该用他去打开二进制可执行文件 文本编辑 ...
- Linux文本编辑器vim
目录 1.vim 的工作模式 2.插入命令 3.定位命令 4.删除命令 5.复制和剪切命令 6.替换和取消命令 7.搜索和搜索替换命令 8.保存和退出命令 9.vim 高级操作 10.总结 通过前面几 ...
随机推荐
- RTM,RTW,GA等软件版本号详解
一直以来,对于新手而言,软件的版本号都是个比较困扰人的问题,什么Beta.RC,再来个RTM.RTW....头大了吧?RTM和RTW有什么区别?借此机会,就给大家介绍一下这方面的小知识吧. 1.软件开 ...
- Redis—初探Redis
一.什么是Redis? 学习Redis最好的是看官网了,下面是Redis的官网对Redis的介绍 可见,Redis是一个内存存储的数据结构服务器,可以用作数据库.缓存等.支持的数据结构也很丰富,有字符 ...
- 细说show slave status参数详解(最全)【转】
在搭建好mysql主从之后,我们一般在从库上通过命令 show slave status\G 来查看主从的状态,会有很多的参数,接下来笔者就带大家好好的了解这些参数 root@localhost (n ...
- juey点击tr选中里面的radio
//点击一行选中银行卡 $("tr").bind("click",function(){ $("input:radio").attr(&qu ...
- Python 中的闭包与装饰器
闭包(closure)是函数式编程的重要的语法结构.闭包也是一种组织代码的结构,它同样提高了代码的可重复使用性. 如果在一个内嵌函数里,对在外部函数内(但不是在全局作用域)的变量进行引用,那么内嵌函数 ...
- hdu 5877(树状数组+dfs)
Weak Pair Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ...
- 读书笔记|Windows 调试原理学习|持续更新
关于调试方面的学习笔记,主要来源于<软件调试>的读书笔记和梦织未来论坛的视频教程 1.调试器使用一个死循环监听调试信息. DebugActiveProcess(PID);while(TRU ...
- 亲手安装RabbitMq 3.7.2 并安装Trace插件
===============================================================================================1.安装E ...
- WordPress插件:自定义登录注册插件:DX Login Register
众所周知,wordpress自带的注册系统比较简单,需要接收邮件密码才能完成.不过对于国内的站长来说,会碰到不少麻烦.首先个人站长一般都使用虚拟主机,有不少还是使用国外的,你的服务器不一定会提供邮件发 ...
- 使用亚马逊云服务器EC2做深度学习(二)配置Jupyter Notebook服务器
这是<使用亚马逊云服务器EC2做深度学习>系列的第二篇文章. (一)申请竞价实例 (二)配置Jupyter Notebook服务器 (三)配置TensorFlow (四)配置好的系统 ...