LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
123
返回列表 发新帖
楼主: Peter74

看看 VIM 的强大功能吧 :)

[复制链接]
发表于 2006-5-11 17:24:52 | 显示全部楼层
Post by ifree
herberteuler大侠,可不可以把你知道的emacs技巧写一个稍微详细点的教程呢?

小弟这段时间正在学习如何使用emacs来提高编辑的效率。可是网上的介绍多归多,但都有点语焉不详的感觉,有点吃力。不过就这两天的学习也真正体会到emacs的强大。emacs-wiki来写自己的笔记实在太好了,不过一些稍微复杂点的操作,便捷的操作方法就不知从何学习了。

呵呵!Emacs 好像不是那种三言两语可以讲清楚的,他的帮助系统非常强大,建议你先学会如何有效地使用帮助。他自带的手册也是很不错的内容!总之,恭喜你,既然你已经体会到了 Emacs 的舒服的地方,那就继续 Enjoy 吧!我用 Emacs 的目标是“用到老、学到老”
回复 支持 反对

使用道具 举报

发表于 2006-5-11 17:33:16 | 显示全部楼层
用emacs,我觉得Ctrl和Alt这两个键在键盘的边缘,用小拇指去按,不太方便。你们怎么解决这个问题的?空格键太大了,要是空格键的地方设计一个Ctrl和Alt多好啊。
回复 支持 反对

使用道具 举报

发表于 2006-5-11 17:36:09 | 显示全部楼层
Post by ifree
用emacs,我觉得Ctrl和Alt这两个键在键盘的边缘,用小拇指去按,不太方便。你们怎么解决这个问题的?空格键太大了,要是空格键的地方设计一个Ctrl和Alt多好啊。

Ctrl 和 Alt 按着挺方便的呀,Ctrl可以用小手指,Alt就随便啦!而且一般都是按的右边的Alt,也不远了,不方便的是标记的命令:C-@ 要按Ctrl+Shift,不过 emacs 里面可以把键绑定到你喜欢的键上面嘛。
回复 支持 反对

使用道具 举报

发表于 2006-5-11 17:46:49 | 显示全部楼层
all serious emacs user should swap ctrl with capslock, haha
回复 支持 反对

使用道具 举报

发表于 2006-5-11 17:47:55 | 显示全部楼层
and use your thumb to press left alt
回复 支持 反对

使用道具 举报

发表于 2006-5-11 18:49:50 | 显示全部楼层
Post by ifree
herberteuler大侠,可不可以把你知道的emacs技巧写一个稍微详细点的教程呢?

小弟这段时间正在学习如何使用emacs来提高编辑的效率。可是网上的介绍多归多,但都有点语焉不详的感觉,有点吃力。不过就这两天的学习也真正体会到emacs的强大。emacs-wiki来写自己的笔记实在太好了,不过一些稍微复杂点的操作,便捷的操作方法就不知从何学习了。


我想我所熟悉的 Emacs 里的部分并不一定是你想要的,所以我能提供的技巧就是:仔细阅读文档。关于这个技巧 Vim 的作者有详细的描述:

Vim 和 Emacs 都有丰富的文档和方便的浏览这些文档的方法,无论何时,它们都会比其他资料更准确。文档的中文化上,Vim 比 Emacs 先行了一步(似乎 Vim 7 中已经自带了中文文档了)。如果阅读英文不吃力,就没有什么可担心的了。

对于 Vim,我只知道 :help 可以看 Vim 手册,而 :help function 则可以查看 function 的信息。:help 支持模糊查询。(请 Peter74 提供一些其他的方法)

对于 Emacs,查看帮助的方法有很多。

1. 按 C-h k 然后输入一个按键序列可以查看这个按键序列会完成什么功能。

2. 按 C-h i 可以找到 Emacs(和其他系统上已经安装的软件)的手册。(这实际上和在 Shell 里执行 info 命令得到的内容相同,包括 info 本身、Emacs、Emacs Lisp、其他软件如 Gcc、Bison、Bash、Gdb 等所有提供了这种格式的手册的软件的手册。)

3. 按 C-h f 然后输入函数的名称可以查看函数的信息。这些信息有一些也可以在 Emacs Lisp 手册、其他 Emacs 包的手册中找到,并且可能更详细,如包含相关的概念、用法示例和要注意的问题。

4. 按 C-h v 然后输入变量的名称可以查看变量的信息。同函数一样,一些变量的信息在 Emacs 手册中也有。

5. 按一个按键序列的一部分然后按 C-h 可以查看有哪些功能的快捷键是以这个序列开始的。

6. 比如你想知道怎样完成一个功能,但不知道应该调用哪个函数或命令,就可以用 C-h a。它是 Emacs 中的模糊查询。

7. 按 C-h ? 则可以查看通过 C-h 可以得到哪些帮助。

上面的 C-h 也可以用 F1 代替。许多时候都可以按空格或 Tab 来获得补全。Lisp 中可以为每个函数都加上 DocString 并可在线显示(Python 也许是从 Lisp 这里学习的),这造就了 Emacs 这个比较容易理解的环境。

Vim 和 Emacs 都支持使用脚本语言来配置,这虽然增加了编辑器的灵活性,但同时也增加了使用的难度。

Vim 的帮助中有几章是介绍 Vim Script 的,另外一些章节则介绍了其他脚本语言,如 Perl、Python 的接口。读读这些就能学会用这些脚本来控制 Vim。(不知道 Peter74 是如何学习 Vim Script 的)

Emacs 的脚本是强大的 Lisp 语言,但为适应 Emacs 做了一些改变,就是 Emacs Lisp 语言。Emacs Lisp 有非常优秀的入门手册:An Introduction to Programming in Emacs Lisp (http://www.gnu.org/software/emacs/emacs-lisp-intro/, 初学的话强烈建议读这个手册),也有完整的参考资料:Emacs Lisp Reference Manual (http://www.delorie.com/gnu/docs/elisp-manual-21/elisp_toc.html, 几乎所有关于 Emacs Lisp 的问题都能在这里找到答案)。新版本的 Emacs (>=22) 中已经自带了这两份手册。此外,用 Emacs Lisp 编程或阅读 Emacs Lisp 源代码时,随时可以用 C-h f 来查看一个函数的在线说明或用 C-h v 来查看一个变量的在线说明。C-h f 和 C-h v 支持自动打开源文件来查看源代码,新版本的 Emacs (>=22) 甚至支持直接跳到 Emacs 的 C 源代码中去。

在上面提供的资料中可以找到足够的功能说明了。但要高效地编辑,学习它们并不是必需的,虽然它们可以使编辑更高效。我觉得学会高效编辑是(一)应用 Bram Moolenaar 的方法(二)可能的话学习一下配置语言并在合适的时机使用它们。

ps: 有些“技巧”就是配置语言的最基本的应用。适当的“黑”一下源代码会知道许多这样的“技巧”。但这些“技巧”可能并不是很通用,所以我想会写些脚本来满足自己的需要还是挺重要的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-13 15:14:14 | 显示全部楼层
我学习vim是通过在线帮助, 当你敲入 : help时就会进入帮助的首页, 在首页上有很多连接,就象网页的链接一样,不过进入的方法不同, 把光标放到链接上,然后按下Ctrl_] 就能跳到那个文件, 按下Ctrl_t就能回到上一页, 就象浏览器的回退键.

在帮助的首页有很多主题, [color="DeepSkyBlue"]|usr_01.txt|... 只要是这种颜色的文字都是链接. 你可以把光标放到这个区域,按下Ctrl_]就能跳到它的页面. 也可以这样: help usr_01
你也可以选择不同的主题看, 例如 : help regex 可以看在vim下怎么用正则表达式(很强大的功能). 我想把帮助首页上的链接看完, vim就会听你的话,乖乖的为你效力了.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表