Vim同Emac是Linux世界下最为流行的两个文本编辑工具,集中精力学习一个就好了,暂定以Vim为学习对象。在本文中,一些基本的操作将不再介绍,只会介绍最为常用的命令以及设置,操作系统为Ubuntu 12.04.

Vim的默认配置,是没有显示行号、语法高亮、智能缩进等功能,为了更好的开展工作,需要手动设置一个配置文件.vimrc,一般将其放在用户根目录下,作为用户自定义的配置文件使用。/etc/vim/vimrc为全局的配置文件,修改这个文件,将会改变所有用户的vim配置。

既然是编辑,那中文输入法也是少不了的,点击链接来安装中文输入法。

相关的配置,可以参考 强大的vim配置文件,让编程更随意。

1. 常见的Vim命令

1. 基本操作

上下左右的移动: 上(K),下(J)

/pat : 向前搜索pat

?pat : 向后搜索pat

把光标移动到你要搜索的词(变量名、函数名等),比如,test,然后按*(向下完整匹配光标下的单词),Vim将自动产生一个对test的完整搜索单词。#为向上完整匹配光标下的单词。

x :用于删除单个字符

dd:删除一行

删除惹人烦恼的^M:在不同环境中的文本编辑文件,对于换行符的解释不一样。Dos系统下,行结束符为\r\n ,Linux,行结束符为\n,Mac上为,行结束符\r.因为这个区别,在一个系统中编辑另一个系统中的文件时,就会出现烦人的^M。

u: 撤销上一步的操作

:(n,m)s/ a / b ( /g ) 用b来替换a,在n~m行之间。$s表示最后一行

0:移到一行的开头

$:移到一行的结尾

gf快捷键来进入任意一个被include <header.h>的头文件,使用ctrl+O回到使用gf之前的地方。

2. 使用Vim进行调试和编译

利用Vim的quickfix模式,可以在Vim中启动编译,如果编译出错的话,Vim会根据编译器输出的错误信息,自动跳到第一个出错的地方,修改完毕后,使用快捷键,可以跳到下一个错误的地方,再进行修改。

Quickfix模式的原理是,从编译器的编译输出信息中获得有关错误的相关信息,将其保存在一个位置列表中,然后提供一系列命令,实现在这些位置列表中跳转。

为了使用quickfix,你首先定义编译你程序的指令makeprg,

:set makeprg=gcc\ -Wall\ -ohello\ hello.c 

然后执行:make就可以编译了。

在使用:make时,vim会自动调用makeprg选项定义的命令进行编译,并把编译信息重定向到一个临时文件,当编译出现错误时,vim会从临时文件中读出错误信息,据此形成quickfix列表,并跳转到第一个错误出现的地方。

在quickfix模式里经常用到的命令有:

:cc                显示详细错误信息 ( :help :cc )
:cp                跳到上一个错误 ( :help :cp )
:cn                跳到下一个错误 ( :help :cn )
:cl                列出所有错误 ( :help :cl )
:cw                如果有错误列表,则打开quickfix窗口 ( :help :cw )
:col               到前一个旧的错误列表 ( :help :col )
:cnew              到后一个较新的错误列表 ( :help :cnew )

详细参考点此。

3. Vim常见问题解决

1. 问题描述:

在Vi里面,下意识的按了Ctrl+S来保存,结果界面卡死,无法输入。

问题原因:

在Vi中,Ctrl+S用来暂停向终端发送数据的,既然是暂停发送数据,那么屏幕就自然接收不到其他数据了,这种情况下,可以使用Ctrl+q来恢复。

2. 问题描述:

当使用笔记本键盘时,用vi处于编辑模式,在按上下左右时,出现ABCD并且加换行。

问题原因:

vim是vi的升级版程序,关于键盘映射上面,老Vi对于小键盘的上下左右会解释成ABCD,新版Vim为了兼容旧版Vi写的脚本,添加了vim的兼容模式,但是,现在已经没有必要使用vi兼容模式了。

解决方法:

在vi中设置:set nocp 恢复为不兼容旧版Vi的模式,或者往用户目录下的.vimrc中添加此命令set nocp就可以解决此类问题。

linux之Vim使用相关推荐

  1. Linux配置vim使得代码缩进

    写的非常棒: 配置Linux下vim自动缩进等功能_Alex_15的博客-CSDN博客

  2. Linux之vim全选、全部复制、全部删除

    Linux之vim全选.全部复制.全部删除 全选(高亮显示):按esc后,然后ggvG或者ggVG 全部复制:按esc后,然后ggyG 全部删除:按esc后,然后dG

  3. Linux之vim中翻页的命令

    Linux之vim中翻页的命令 当我们进入Linux的vim编辑器查看脚本时,按上下键查看是不是非常慢?这个时候就要用到我们的翻页快捷键了,快捷键命令如: 整页翻页 ctrl-f ctrl-b ctr ...

  4. 【 Linux 】Vim 使用的第一个阶段(满足基本的写代码需求)

    由于是刚接触vim,也不知道怎么学,那就站在巨人的肩膀上吧,死记硬背书上的那些指令肯定也不是我所能接受的,看到了一篇博客,写的还不错,([ Linux ]Vim学习指南 ),这是我转载的一篇博文,里面 ...

  5. Linux中使用Linux的vim如何让代码高亮显示

    Linux中使用Linux的vim如何让代码高亮显示 文章目录: 一.代码高亮显示报错 1.1 方法一:修改 ~/.vimrc配置文件 1.2 方法二:更新vim编辑器 二.vim中Python的代码 ...

  6. -Git Linux vi/vim 命令 按键 MD

    目录 目录 Linux vi/vim 简介 vi/vim 的使用 命令模式 输入模式 底线命令模式 vi/vim 使用实例 使用 vi/vim 进入一般模式 按下 i 进入输入模式,开始编辑文字 按下 ...

  7. linux的vim显示E172,Linux命令:vim

    linux下vim编辑器简介: Visual Interface iMproved也叫全屏编辑器,模式化编辑器 四种模式: 编辑模式 (命令模式)        输入模式 (Insert) 末行模式( ...

  8. Linux的vim编辑器中的翻页命令

    当我们进入Linux的vim编辑器查看脚本时,按上下键查看是不是非常慢?这个时候就要用到我们的翻页快捷键了,快捷键命令如: 整页翻页命令为:    Ctrl + f 键   f 的英文全拼为:forw ...

  9. linux中vim编辑器_为什么Vim爱好者喜欢Herbstluftwm Linux窗口管理器

    linux中vim编辑器 每个人都喜欢Vim(除了Dvorak和Emacs用户). Vim非常流行,以至于整个Web浏览器都致力于通过Vim键盘绑定,流行的Zsh终端仿真器中的Vim模式甚至文本编辑器 ...

  10. linux 下vim文件乱码 cat文件正常处理方法

    linux 下vim文件乱码 cat文件正常处理方法 服务器支持中文字符集,cat和其他查看文件命令现在正常,vim还是出现了中文乱码问题, 1.查看文件编码格式 vim 文件 :set fileen ...

最新文章

  1. golang中的strings.Count
  2. 制定规则者与打破规则者
  3. F5 LTM设备降级实战
  4. 11种必知的word embeddings模型
  5. oracle+olh+hive,hadoop+hive+hbase的简单安装 | YallonKing
  6. python实时数据流设计_Python读取实时数据流示例
  7. 关于C++中的友元函数的总结
  8. MySQL Connector/C++入门教程(上)
  9. ionic4 背景设置动态图片报错WARNING: sanitizing unsafe style value background-image:url
  10. PHP 初学者资源收集
  11. 运输问题---表上作业法
  12. 开源阅读书源_【阅读】一款开源的强大的看书软件!amp;超多书源。
  13. 一篇文带你零基础玩转mysql触发器 | 超级干货,建议收藏
  14. Android Minui 相关API说明
  15. 区块链随想录——一种设想中的公链架构
  16. python全栈工程师薪水_Python工程师薪资待遇是多少?老男孩Python周末班
  17. xpath爬取链家二手房
  18. 微信支付回调通知实现
  19. 分布式与云计算系统 考试内容总结
  20. Win7 VS2017编译magnum及例子

热门文章

  1. gbk编码的简介以及针对gbk文本飘红截断原理以及实现
  2. JavaScript面试时候的坑洼沟洄——表达式与运算符
  3. Cisco 双出口NAT配置
  4. oracle 监控 视图,【转】oracle几个常用的监控视图
  5. java程序编写九九乘法表_用面向对象的方法编写的九九乘法表java代码的编写
  6. java文件复制速度_java中文件复制得速度测试
  7. @requestparam map 接收前端的值_前端面试总结篇(初级)
  8. 数据源(连接池)的作用
  9. RocketMQ各种集群模式介绍
  10. keepAliveTime和线程工厂