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. 条款12:复制对象时勿忘其每一个成分(Copy all parts of an object)

    NOTE: 1.Copying 函数应该确保复制“对象内的所有成员变量”及“所有base class成分”. 2.不要尝试以某个copying函数实现另一个copying函数.应该将共同机能放进第三个 ...

  2. 如何禁用python警告

    有-W选项. python -W ignore foo.py 所属网站分类: python基础 > 综合&其它 作者:jiem 链接:http://www.pythonheidong.c ...

  3. cherrypy入门

    主要是一个简单的cherrypy hello例子 import cherrypy from jinja2 import Environment, FileSystemLoader import os ...

  4. centos配置mutt跟msmtp发送邮件

    一.安装mutt yum install mutt 二.配置mutt vi /etc/Muttrc 在里面找到下面几行,并将内容修改为你自己的内容(下面几行分布在不同位置,请耐心查找,记得去掉它行首的 ...

  5. UVA 11090 判负圈问题

    题目链接http://vjudge.net/problem/viewProblem.action?id=34650 题目大意: 给定n个点m条边的加权有向图,求平均权值最小的回路.平均权值=路径权值之 ...

  6. [HDU2157]How many ways??(DP + 矩阵优化)

    传送门 k < 20 k这么小,随便dp一下就好了... dp[i][j][k]表示从i到j经过k个点的方案数 4重循环.. 但是如果k很大就不好弄了 把给定的图转为邻接矩阵,即A(i,j)=1 ...

  7. codeforces 315B

    #include<stdio.h> int main() { int n,k,i,flag=0; while(scanf("%d%d",&n,&k)!= ...

  8. hdu3622:Bomb Game

    给n<=100对点,从每对点里面挑一个并以这些挑出的点为圆心画圆,并且这些圆不能互相覆盖,找出一种方案使得这些圆半径中最小的那个最大. “最小值最大”就是二分答案啦!考虑现在每个点都画出半径x的 ...

  9. POJ 2104 K-th Number【整体二分 + 树状数组】

    本来只是想学一下CDQ,还是先把整体二分搞懂一点. 这题窝几个月前分别用划分树,树套树,主席树和挑战上介绍的分桶法实现了一发(然而现在都忘得差不多了) 最快的是划分树,其次是主席树,然后是树套树,还有 ...

  10. Delphi:解决重绘造成的窗体闪烁问题

    解决窗体闪烁问题 具体代码: 1.在声明窗体类时加入:   private     procedure CreateParams(var Params: TCreateParams); overrid ...