热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

Vi技巧集(开个头)-mysql教程

刚开始用vi的人,常常抱怨vi的功能太小,用起来不够方便。仔细想一想,程序员常常号称是像狐狸一样懒惰的人,vi的作者们都世界级的顶尖程序员,他们自己是程序员,难道他们还不知道自己需要什么样的编辑器?用vi的历史,算上在学校的时间,也有六七

刚开始用 vi 的人,常常抱怨 vi 的功能太小,用起来不够方便。仔细想一想,程序员常常号称是像狐狸一样懒惰的人, vi 的作者们都世界级的顶尖程序员,他们自己是程序员,难道他们还不知道自己需要什么样的编辑器? 用 vi 的历史,算上在学校的时间,也有六七

刚开始用vi的人,常常抱怨vi的功能太小,用起来不够方便。仔细想一想,程序员常常号称是像狐狸一样懒惰的人,vi的作者们都世界级的顶尖程序员,他们自己是程序员,难道他们还不知道自己需要什么样的编辑器?

vi的历史,算上在学校的时间,也有六七年光景了。大部分功能都用得比较熟练了,觉得够用就行了,对少数奇技淫巧也不肖一顾,也就没有再花过时间学习它的高级用法了。今天,从长生兄那里学了一招,可以直接跳到grep的结果里去,比较实用。

这件事情虽小,却对我有些触动,想了想,即使对自己熟悉的东西,闭目塞听只会使人停留在原处。借这个契机,总结一下一些有用的高级技巧吧。这些技巧,有的并不常用,时间一长,不用忘记了,要用的时间想不起来,要浪费时间去查资料,不如把它们记下来。

当然,这些并不是什么新东西,在网上都可以找得到的,只是我自己做个笔记罢了。

查看符号定义。Vi提供了像Win32IDE那样的功能,可以很方便的查看函数原型、结构声明、宏的定义等。只是它的功能相比之下,要弱一些,不过,结合其它一些技巧,完全可以满足你的需要。使用这个功能,需要做一些设置:

1. 安装ctags软件包。在安装光盘可以找到,也可以到网上下载源码包,自己编译。

2. 生成tags文件。进入到你的源代码所在的目录,运行ctags -R命令,它会为当前目录及子目录下的源程序建立索引,并在当前目录下创建一个tags文件,里面保存的是符号索引信息。

3. 设置tags路径。在vi的起动脚本文件中(一般是~/.vimrc),告诉vi在哪里可以找到tags文件,一般尽量用相对路径。如:set tags=./tags,../tags,../../tags,../../../tags

4. 跳到指定的符号。 + ] 可以跳转到光标所在处的符号的符号的定义那里。

5. 返回到原来的位置。 + t 或者 + o可以返回原来的位置。

查看系统函数的帮助Vi也可以像VC那样,很方便的跳转到系统函数的帮助那里。原理很简单,在vi运行外部命令man就行了:!man fopen,这样做,可能会觉得有些麻烦,vi提供了快捷的方式: + k可以跳到光标所在处的符号的帮助那里。

自动定位编译错误处。VC里,编译时,如果出现编译错误,双击错误信息,编辑器自动切换到出现错误的地方,是不是很方便呢?其实不用羡慕,vi也有这种功能,在vi里,运行make命令后,如果有编译错误,你按一下回车,vi自动定位到第一个编译错误那里。记得,要用内置的make命令,即运行:make,不是外部命令:!make

自动定位查找结果。在写程序时,我们常常想知道,有哪些地方使用了某个函数,怎么办呢,你可以在shell里,用grep查找,然后打开对应的文件,可以看到相关的上下文信息。但这样做比较麻烦,Vi有个内置的grep命令,用起来很方便:

1. 查找。用法和shell中的grep一致。

2. 跳到第一个查找结果处。直接回车就行了。

3. 列出所有的查找结果。:cl命令可以列出所有的查找结果,每个结果都有一个编号。

4. 跳到某项查找结果的文件中。:cc <编号> 命令可以跳到指定编号查找结果的文件中,<编号>是前面用:cc列出来的编号。

5. 返回到原来的位置。 + o 可以返回原来的位置。

未完待续


推荐阅读
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 编写了几个500行左右代码的程序,但基本上解决问题还是面向过程的思维,如何从问题中抽象出类,形成类的划分和设计,从而用面向对象的思维解决问题?有这方面的入门好书吗?最好是结合几个具体的案例分析的 ... [详细]
  • 本文详细介绍了Vim编辑器的三种主要模式及其常用命令,帮助用户更好地掌握这一强大的文本编辑工具。 ... [详细]
  • HTML基础入门指南
    本文将深入浅出地介绍HTML的基础知识,包括其定义、开发工具、制定机构、特性、基本标签及更多实用内容。 ... [详细]
  • 本文深入探讨网页游戏的开发流程,涵盖从程序框架设计到具体实现的技术细节,旨在为开发者提供全面的指导。 ... [详细]
  • Vim怎么批量处理文件将tab变为space? ... [详细]
  • 本文详细介绍了如何规划和部署一个高可用的Etcd集群,包括主机配置、软件安装、防火墙设置及集群健康检查等内容。通过合理的硬件配置和网络规划,确保Etcd集群在生产环境中的稳定运行。 ... [详细]
  • 在成功安装和测试MySQL及Apache之后,接下来的步骤是安装PHP。为了确保安全性和配置的一致性,建议在安装PHP前先停止MySQL和Apache服务,并将MySQL集成到PHP中。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 每个企业都渴望在市场上占据有利位置,提高产品知名度和品牌认可度,进而促进业务增长。本文将探讨如何通过有效的软文营销策略实现这一目标。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 本文档详细介绍了在 Kubernetes 集群中部署 ETCD 数据库的过程,包括实验环境的准备、ETCD 证书的生成及配置、以及集群的启动与健康检查等关键步骤。 ... [详细]
  • Java EE CDI:解决依赖关系冲突的实例
    在本教程中,我们将探讨如何在Java EE的CDI(上下文和依赖注入)框架中有效解决依赖关系的冲突问题。通过学习如何使用限定符,您将能够为应用程序的不同客户端提供多种接口实现,并确保每个客户端都能正确调用其所需的实现。 ... [详细]
  • 当Windows 10系统遇到蓝屏故障时,有时不会显示详细的错误信息,这给问题的诊断带来了困难。本文将介绍如何通过简单的方法使Win10蓝屏时显示具体的错误代码。 ... [详细]
  • 本文探讨了汉语成语‘走投无路’在英语中的多种翻译方法,该成语用于形容一个人处于极度困难的境地,几乎没有任何解决办法。文章不仅提供了直接的翻译,还结合具体语境给出了更为地道的英文表达。 ... [详细]
author-avatar
手机用户2502920725
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有