"vim"是linux中非常强大,应用非常广的编辑方式。下面介绍一些"vim"的基本用法。以"/etc/passwd"为例。

1、vim命令模式

输入":set nu"可以添加行号,如下图所示。":set nonu"可以取消行号。":set mouse=a"可以添加鼠标选择。":set cursorline"可以在光标下显示行线。

以上的设定都只在当前的"vim"中生效,如果需要永久生效,则输入命令"vim /etc/vimrc",此文件为vim的配置文件,在此文件上加入以上参数,后续的"vim"都会生效,例如在配置文件中加入"set nu",以后使用"vim"时都会自动显示行号。

2、vim命令模式下的关键词搜索

"vim"为了使用方便,也在命令模式下有关键词搜索功能。"/关键字"可以快速查找文件,如图查找文件中的"bin"关键词。n向下匹配关键词,N向上匹配关键词。

3、vim命令模式下的字符管理

vim命令模式的字符管理主要提供文本的复制、删除、剪切功能。

字符的复制使用"y"。"yl"表示复制一个字母,"ynl"表示复制n个字母,"yw"表示复制一个单词,"ynw"表示复制n个单词,"yy"表示复制一行,"yny"表示复制n行,在复制完成后,在想要复制的目标位置按"p"完成复制,下图为使用"yy"复制一整行。将第4行复制为第5行。

字符的删除使用"d"。"dl"表示删除一个字母,"dnl"表示删除n个字母,"dw"表示删除一个>单词,"dnw"表示删除n个单词,"dd"表示删除一行,"dnd"表示删除n行,下图为使用"dd"删除一整行。删除了第1行。

字符的剪切使用"c"。"cl"表示剪切一个字母,"cnl"表示剪切n个字母,"cw"表示剪切一个>单词,"cnw"表示剪切n个单词,"cc"表示剪切一行,"cnc"表示剪切n行,在剪切后会进入到插入模式,在执行粘贴动作时一定要按"esc"退出插入模式,然后在目标位置按"p",下图为使用"cc"剪切一整行。

4、vim的可视化模式

在命令模式下按“ctrl+v”进入到可视模式,在可视模式下可以区域选择字符。如下图所示,选中了要加入字符的所在列,按按“I”进入插入模式,写入要加入的字符"XXXX",然后按"esc"就会在选中的整列前添加"XXXX"。

5、批量修改字符

在一个文本中,如果需要批量修改字符,则需要输入命令":%s/原有字符/替换后字符/g"如果没有"g",则只会替换每一行中出现的第一个原有字符,如下图所示,利用上述命令将"bin"全部变为"DDDDDDDDDDD"。

如果只需要替换前几行,则需要输入":1,ns/原有字符/替换后字符/g",例如下图将1至5行的"bin"替换为"DDDDDDDDDDDDDDD"。

6、vim的分屏功能

在进行"vim"编辑文本的时候,有时候会用到分屏功能,将"ctrl+w"一起按下,然后按"s"会出现上下分屏。

按"v"会出现左右分屏。

按"c"可以关闭光标所在的屏幕,按上下左右可以移动光标至指定屏幕。

在打开一个"vim"的情况下,输入":sp file2"可以同时编辑当前文件和"file2"。

7、vim光标移动

在命令模式下,输入":数字"可以移动到指定的行,按"G"可以移动至文件第一行,按"gg"可以移动至文件最后一行。

在插入模式下,按"i"可以在光标所在位置插入,按"I"可以在光标所在行行首插入,按"a"可以在光标所在字符的下一个位置,按"A"可以在光标所在行行尾等等。

8、vim的退出

在编辑完文件或者查看完文件后,没有对字符作任何操作时可以输入":q"退出,对字符作操作,但要放弃所有操作退出时输入":q!",输入":wq"可以保存退出,输入":wq!"强行保存退出,对超级用户及文件所有人生效。

9、其他

在文件编辑时,也可以通过命令"gedit file"来打开gedit的图形界面编写文本。

以上是"vim"的一些基本编辑功能,还有其他的功能需要在后面的学习中了解并熟悉。

linux初学者-编辑文件工具vim的更多相关文章

  1. 只有文本编辑器才是王道, 什么ide都是evil的浮云, 看看linus linux的内核开发工具vim emacs

    只有文本编辑器才是王道, 什么ide都是evil的浮云, 看看linus linux的内核开发工具vim emacs [ide is evil] (http://i.cnblogs.com/EditP ...

  2. Windows上管理远程Linux VPS/服务器文件工具 - winscp

    Linux上经常会经常需要编辑文件,特别是Linux VPS/服务器安装好系统之后配置环境会需要修改很多的配置文件等,对于常用Linux的基本上都能够熟练使用vi或者nano等SSH下面的文件编辑工具 ...

  3. 新手必学linux文本文件编辑命令 vi vim.....

    作为一名Linux新手小白,今天就和大家简单地了解一下Linux的Vim文本编辑器的使用. Vim文本编辑器     vim编辑器的三大模式——命令模式.编辑模式和末行模式            命令 ...

  4. linux笔记:文件编辑器vim

    vim的3种工作模式: 在命令模式下进入插入模式: 定位命令: 删除命令: 复制和剪切命令: 替换和取消命令: 查找和替换命令: 保存和退出命令: 导入命令执行结果和定义快捷键:

  5. 【Linux】编辑文件时,箭头按键还有BACKSPACE按键不能正常使用的解决办法

    需要安装vim sudo apt-get  remove vim-common sudo apt-get install vim

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

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

  7. day59:Linux:编辑工具vim&文件类型&文件属性

    目录 1.Linux编辑工具vim 2.Linux文件类型 3.Linux文件属性 4.今日份Linux练习题 Linux编辑工具vim 1.什么是vim 文本文件的编辑工具,  和windows的n ...

  8. Linux文件编辑工具——VIM

    Linux文件编辑工具--VIM 1.VIM基本概述 1.1 什么是vim vi 和 vim 是 Linux 下的一个文本编辑工具.(可以理解为 windows 的记事本,或 Notepad++ 1. ...

  9. Linux系统的文件复制移动删除与VIM编辑

    目录 今日内容概要 内容详细 复制文件 移动文件 删除文件 系统别名(针对 rm 改别名) vim编辑器 今日内容概要 复制文件 移动文件 删除文件 vim编辑器 内容详细 复制文件 # 命令: cp ...

随机推荐

  1. nginx架构分析之 事件驱动模型

    事件驱动模型 事件驱动模型是实现异步非阻塞的一个手段.事件驱动模型中,一个进程(线程)就可以了. 对于web服务器来说,客户端A的请求连接到服务端时,服务端的某个进程(Nginx worker pro ...

  2. shell for循环输出目录下的文件名

    test.sh文件: #!/bin/bash for file in `ls`;do echo $file done 输出 bogon:test macname$ chmod +x test.sh b ...

  3. shell 空语句

    在shell脚本中“:”是空命令,表示什么都不做类似于python中的pass

  4. CF859E Desk Disorder

    传送门 Luogu Solution 好好思考一下,发现人和座位构成的是一个二分图这还用想? 那么这个时候发现其实我们要求的就是这个二分图完全匹配的方案数,考虑在二分图上的一个连通块,如果是树,那么就 ...

  5. ZooKeeper入门实战教程(一)-介绍与核心概念

    1.ZooKeeper介绍与核心概念1.1 简介ZooKeeper最为主要的使用场景,是作为分布式系统的分布式协同服务.在学习zookeeper之前,先要对分布式系统的概念有所了解,否则你将完全不知道 ...

  6. 【Python】[技术博客] 如何对使用PYQT编写的GUI文件进行单元测试

    如何对使用PYQT编写的GUI文件进行单元测试 想要对PYQT编写的GUI文件进行单元测试,我们主要用到QTest QTest里面包含了一些对窗体的各种控件进行模拟操作的函数,通过QTest对窗体进行 ...

  7. Java NIO 堆外内存与零拷贝

    一.直接缓存 这个例子的区别就是 ByteBuffer.allocateDirect(512); 进入allocateDirect方法 进入DirectByteBuffer构造函数 Native方法: ...

  8. dubbo源码分析- 集群容错之Cluster(一)

    1.集群容错的配置项 failover - 失败自动切换,当出现失败,重试其他服务器(缺省),通常用于读操作,但重试会带来更长的延时. failfast - 快速失效,只发起一次调用,失败立即报错.通 ...

  9. 使用 Microsoft.Web.Administration 管理iis

    How to Automate IIS 7 Configuration with .NET How to Automate IIS 7 Configuration with .NET Are you ...

  10. layer.confirm 防止post重复提交

    layer.confirm("确定对该资源单的价格"+isa+value+"元吗!", function(index, layero){ $(layero).f ...