1,所有的Unix like系统都会内建vi文书编辑器,其他的文书编辑器则不一定会存在,但是目前我们使用比较多的是vim编辑器

vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序的设计

2,什么是vim

Vim是从vi发展出来的 一个 文本编辑器,代码补充,编译及错误跳转等方便编程的功能特别的丰富,在程序员中被广泛使用.

简单来说,vi是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方,vi则可以说是程序开发者的意向很好用的工具

3,vi/vim的使用

基本上vi/vim共分为三种模式,人别是命令模式(Command mode),输入模式(Insert mode),和 底部命令模式(Last line mode).

3.1,命令模式:

  • 用户刚刚启动vi/vim,变进入命令模式,此状态下敲击键盘动作会被Vim识别为命令,而非输入字符,比如我们按下i,并不会输入一个字符,i被当做了一个命令
  • 移动光标的相关命令
w(e)    移动光标到下一个单词

b         移动光标到上一个单词

数字0   移动到本行开头

$         移动光标到本行结尾

H        移动光标到屏幕首行

M        移动光标到屏幕中间的一行 

L        移动光标到屏幕的尾行

gg      移动光标到文档的首行 

G        移动光标到文档尾行

ctrl + f   下一页

ctrl + b  上一页
. 移动光标到上一次的修改行
  • 查找
/xuexue      在整篇文档中搜索xuexue字符串,向下查找
?xuexue 在整篇文档中搜索xuexue字符串,向上查找
* 查找整个文档,匹配光标所在的所有 单词,按下n查找 下一处,N上一处
# 查找整个文档,匹配光标所在的所有单词,按下n查找下一处,N上一处 gd 找到光标所在单词 匹配的单词,并停留在非注释的第一个匹配上 % 找到括号的另一半(确定闭合区间)
  • 复制,删除,粘贴
yy         拷贝光标所在行
dd 删除光标所在行
D 删除当前光标到尾行的内容
dG 删除当前行到文档尾部的内容 p 粘贴yy所复制的内容 x 删除光标所在的字符 u 撤销上一步的操作
  • 数字与命令
3yy        拷贝光标所在行以及向下的3行

5dd        删除光标所在行以及向下的5行

输入模式:

在命令模式下,按下字母i(insert),即进入输入的模式,就可以编辑了...

4,底线命令模式

在命令模式下输入冒号(英文的:),就进入了底线命令模式,在底线命令模式下可以输入单或多个字符的命令,常用命令有:

:q!        强制退出
:wq! 强制写入退出
:set nu 显示行号
:数字 调到数字那行 随时按下esc可以退出底线命令模式

5,vim工作模式

vim按键

  • 移动光标
移动光标的方法
h 或 向左箭头(←) 光标向左移动一个字符 j 或 向下箭头(↓) 光标向下移动一个字符 k 或 向上箭头(↑) 光标向上移动一个字符
l 或 向右箭头(→) 光标向右移动一个字符
向下移动5行 5j
向右移动10个字符 10l
n(space) 按下数字n,列如10,然后按下空格,光标会向右移动10个字符
  • 底线命令
:! command       暂时离开vim指令模式,执行command的结果
列如 :!ip a 临时查看一下ip信息,然后可以回到vim :set nu 显示vim行号 :set nonu取消行号

更多的nb的vim用法请看菜鸟教程:http://www.runoob.com/linux/linux-vim.html

程序员的vim的更多相关文章

  1. vim与程序员 vi/vim 的使用

    vim与程序员   所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以 ...

  2. 作为程序员之 Vim(一)

    开始使用 Vim(一) vim被称为是编辑器之神,如果可以学好vim的话,就可以在键盘上 “健指如飞” 了,可以完全摆脱鼠标来进行文本的定位编辑. 当然,vim还可以进行各种配置,装上各种插件,做成 ...

  3. 程序员的编辑器——VIM

    from:http://blog.chinaunix.net/uid-11278770-id-148579.html Chinaunix首页 | 论坛 | 认证专区 | 博客 登录 | 注册      ...

  4. vim配置-程序员【转】

    Ubuntu11.10的vim升级后,版本为vi Improved 7.3.154功能很强大了.不过,程序员要根据自己的习惯配置好vimrc文件,是vim更加得心应手. 注:一般用户在自己的当前目录下 ...

  5. vim与sublime,程序员的屠龙刀和倚天剑

    对程序员来说,写代码是再熟悉不过的事情了,windows系统自带有记事本软件,能写写小规模的代码,可是代码量大了,它的局限性就暴露得很明显了:没有语法高亮,没有自动提示,不支持项目管理,界面难看-- ...

  6. vim与程序员

    所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正 ...

  7. linux 下程序员专用搜索源码用来替代grep的软件ack(后来发现一个更快的: ag), 且有vim插件的

    发现一个比ack更快更好用的:  https://github.com/ggreer/the_silver_searcher   , 使用时命令为ag,它是基于ack的代码二次开发的,所有使用方法基本 ...

  8. 运维 06 vim与程序员

    vim与程序员   所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以 ...

  9. [转]C/C++ 程序员必须收藏的资源大全

    from: https://github.com/jobbole/awesome-cpp-cn C++ 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome – XXX 系列 ...

随机推荐

  1. mysql语句查询:查询距离某个日期10天的数据

    select * from table  where state = '1' and DATE_SUB(CURDATE(), INTERVAL 10 DAY) <= begin_time

  2. POJ1703-Find them, Catch them 并查集构造

                                             Find them, Catch them 好久没有做并查集的题,竟然快把并查集忘完了. 题意:大致是有两个监狱,n个 ...

  3. [Kubernetes]集群配置免密登录Permission denied (publickey,password) 解决办法

    在用ansible部署Kubernetes集群是需要配置免密登录,但是遇到Permission denied (publickey,password)的问题 首先推断可能是sshd_config的配置 ...

  4. bzoj 2337 高斯消元+概率DP

    题目大意: 每条路径上有一个距离值,从1走到N可以得到一个所有经过路径的异或和,求这个异或和的数学期望 这道题直接去求数学期望的DP会导致很难列出多元方程组 我们可以考虑每一个二进制位从1走到N的平均 ...

  5. 爱在心中(codevs 2822)

    题目描述 Description “每个人都拥有一个梦,即使彼此不相同,能够与你分享,无论失败成功都会感动.爱因为在心中,平凡而不平庸,世界就像迷宫,却又让我们此刻相逢Our Home.” 在爱的国度 ...

  6. linux上配置spark集群

    环境: linux spark1.6.0 hadoop2.2.0 一.安装scala(每台机器)   1.下载scala-2.11.0.tgz   放在目录: /opt下,tar -zxvf scal ...

  7. 如何改变linux系统的只读文件的权限

    vim 编辑可以在命令模式输入 :wq! 保存退出可以用chmod 命令修改文件权限. chmod命令是非常重要的,用于改变文件或目录的访问权限.用户用它控制文件或目录的访问权限.该命令有两种用法.一 ...

  8. 深入理解计算机操作系统——12章:多进程,IO多路复用

    三种并行的应用程序: 1. 基于进程的并发编程: 2. 基于IO多路复用的并发: 3. 基于线程的并发编程: 12.1 基于进程的并发编程 进程的优劣: (1)进程间共享文件表,但不共享用户地址空间, ...

  9. as3 二维数组的定义

    大家都知道as3里面是不能直接定义多维数组 所以不能直接用arr[2][3]这样的方法来获取数组里面的值.如何才能创立多维数组了? 方法如下先定义一个数组 var MapData:Array=new ...

  10. socket相关

    socket层 图示,没有找到socket,那么socket层在哪儿呢? 看图: socket是什么 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Sock ...