免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1650 | 回复: 0
打印 上一主题 下一主题

Linux下编辑器指南! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-28 10:50 |只看该作者 |倒序浏览
注:此文转自linuxsir。原文:《Debian参考手册 第十一章 编辑器 》

11.1 流行的编辑器
=================
Linux下有众多运行于控制台环境的文本编辑器任你选用,它们包括:

·vim:强大而轻便的BSD传统编辑器。VI iMproved.
·emacs:重量级GNU传统编辑器。RMS (Richard M. Stallman)原创。
·xemacs:Emacs的下一代,由Lucid原创。
·mcedit:新型GNU编辑器。也就是mc内置编辑器。参阅〖4.3.5 编辑器〗。
·ae:默认的小型编辑器(Potato)。通常不用它。
·nano:默认的小型GNU编辑器(Woody)。类似pico。
·joe:用于旧式的WordStar或TurboPascal。
·jed:快速、多功能、菜单式编辑器,兼容Emacs键盘操作方式。
·jove:微型编辑器,兼容Emacs键盘操作方式。
·nvi: 新版vi。Bug-for-bug compatible with the original vi.

使用update-alternavives --config editor命令可设置默认的编辑器。许多程序也使用环境变量EDITOR或VISUAL来调用编辑器。参阅〖4.3.5 编辑器〗。

还有一些运行于X环境的编辑器也值得一提:

·gvim:Vim with GUI (vim-gtk package)
·emacs:The One True Emacs (auto-detect X).
·xemacs:Next generation Emacs (auto detect X).

这些X客户端的命令使用标准选项如-fn a24,这对象我这样的老家伙来说就再好不过了参阅〖9.4.4 X客户端〗。



11.2 应急的编辑器
=================
有些编辑器安装在/bin下,这类编辑器至少应该安装一个,以免当/usr不能访问时,无法编辑文件。

·elvis-tiny:最小的vi编辑器(用vi命令开打)
·nano-tiny:最小的非vi编辑器(用nano-tiny命令打开)
·ed:最小的编辑器(常驻系统但使用起来极不方便)



11.3 Emacs和Vim
===============

11.3.1 Vim提示
--------------
程序运行时可按下<F1>;阅读“VIM - main help file”文档。

<F1>; 帮助
<esc>; 返回到正常模式
V Visual模式
i Insert模式
: 命令行命令
:set tw=72 设置文本宽为72
<F11>; Insert (paste) 模式
:r! date -R Insert RFC-822 数据
qa 将键盘操作记录到注册表a
@a 播放注册表a中记录的键盘操作
:edit foo.txt 载入并编辑另一个文件foo.txt
:wnext 写入当前文件然后编辑下一个文件

q和@可用来记录简单的键盘宏然后回放它们。例如,想创建一个宏为光标所在处的单词加上HTML斜体字标签,可以输入qii<i>;^[ea</i>;^[q (此处^[表示按ESC键)。然后,在单词前输入@i,编辑器就会自动为它加上<i>;和</i>;。

11.3.2 Emacs提示
----------------
<F1>; 帮助
<F10>; 菜单
C-u M-! date -R 插入RFC-822数据

11.3.3 打开编辑器
-----------------
打开编辑器: emacs filename vim filename
以vi兼容方式打开: vim -C
以vi不兼容方式打开: vim -N
默认编译方式打开: emacs -q vim -N -u NONE


11.3.4 编辑器命令总汇(Emacs,Vim)
----------------------------------


  1.     退出:                          C-x C-c         :qa /:wq /:xa /:q!
  2.     返回/命令模式:                 C-g             <esc>;
  3.     后退(左移):                  C-b             h
  4.     前进(右移):                  C-f             l
  5.     下一行(下移):                C-n             j
  6.     上一行(上移):                C-p             k
  7.     行首(^):                     C-a             0
  8.     行尾($):                     C-e             $
  9.     多重命令:                      C-u nnn cmd     :count cmd
  10.     多重命令:                      M-digitkey cmd
  11.     保存文件:                      C-x C-s         :w file
  12.     buffer开始处:                  M-<             1G
  13.     buffer末尾处:                  M->;             G
  14.     向前翻1屏:                     C-v             ^F
  15.     向前翻1/2屏:                                   ^D
  16.     向前翻1行:                                     ^E
  17.     向后翻1屏:                     M-v             ^B
  18.     向后翻1/2屏:                                   ^U
  19.     向后翻1行:                                     ^Y
  20.     换到其它窗口:                  M-C-v
  21.     删除光标下的内容:              C-d             x
  22.     删除光标和行尾之间的内容:      C-k             D
  23.     向前iSearch:                   C-s
  24.     反向isearch:                   C-r
  25.     向前搜索:                      C-s enter       /
  26.     反向搜索:                      C-r enter       ?
  27.     正规表达式isearch:             M-C-s
  28.     正规表达式反向isearch:         M-x isearch-backward-regexp
  29.     正规表达式搜索:                M-C-s enter     /
  30.     正规表达式反向搜索:            M-x isearch-backward-regexp enter
  31.                                                     ?
  32.     帮助:                          C-h C-h         :help
  33.     可能的帮助:                    C-h a
  34.     快捷键帮助:                    C-h b           :help [key]
  35.     简要帮助:                      C-h i
  36.     主要帮助:                      C-h m
  37.     使用指南:                      C-h t           :help howto
  38.     Undo:                           C-_             u
  39.     Redo:                           C-f             ^R
  40.     在光标所在处作记号:            C-@             m{a-zA-Z}
  41.     交换记号和位置:                C-x C-x
  42.     定位到当前文件的记号处:                        '{a-z}
  43.     定位到所有文件的记号处:                        '{A-Z}
  44.     区域拷贝:                      M-w             {visual}y
  45.     区域删除:                      C-w             {visual}d
  46.     Yank and keep buffer:           C-y            
  47.     Yank from kill buffer:          M-y             p
  48.     区域内字母转成大写:            C-x C-u         {visual}U
  49.     区域内字母转成小写:            C-x C-l         {visual}u
  50.     插入特殊字符:                  C-q octalnum/keystroke  
  51.                                                     ^V decimal/keystroke
  52.     替换:                          M-x replace-string      :%s/aaa/bbb/g
  53.     正规表达式替换:                M-x replace-regexp      :%s/aaa/bbb/g
  54.     询问替换:                      M-%                     :%s/aaa/bbb/gc
  55.     询问替换:                      M-x query-replace
  56.     询问正规表达式替换:            M-x query-replace-regexp
  57.     打开文件:                      C-x C-f         :r file
  58.     保存文件:                      C-x C-s         :w
  59.     保存所有buffers:               C-x s           :wa
  60.     保存为:                        C-x C-w file    :w file
  61.     准备buffer:                    C-x b
  62.     buffers列表:                   C-x C-b         :buffers
  63.     只读开关:                      C-x C-q         :set ro
  64.     Prompt and kill buffer:         C-x k
  65.     水平分割窗口:                  C-x 2           :split
  66.     垂直分割窗口:                  C-x 3           :vsplit (ver. 6)
  67.     移动到其它窗口:                C-x o           ^Wp
  68.     关闭当前窗口:                  C-x 0           :q
  69.     关闭其它窗口:                  C-x 1           ^Wo
  70.     在前台运行shell:               M-x compile
  71.     关闭前台运行的shell:           M-x kill-compilation
  72.     运行make                                        :make Makefile
  73.     检查错误消息:                  C-x`            :echo errmsg
  74.     运行shell关记录其活动:         M-x shell       :!script -a tmp
  75.     ...清除BS, ...                                  :!col -b <tmp >;record
  76.     ...保存/调出shell记录:         C-x C-w record  :r record
  77.     运行shell:                     M-! sh          :sh
  78.     执行命令:                      M-! cmd         :!cmd
  79.     执行命令并进入插入状态:        C-u M-! cmd     :r!cmd
  80.     运行filter:                     M-| file        {visual}:w file
  81.     运行filter并进入插入状态:      C-u M-| filter  {visual}:!filter
  82.     显示option                                      :se[t] {option}?
  83.     重设option到默认状态                            :se[t] {option}&
  84.     重设boolean option                              :se[t] no{option}
  85.     boolean option开关节                            :se[t] inv{option}
  86.     文本在第72列自动换行                            :se tw=72
  87.     关闭自动换行                                    :se tw=0
  88.     自动缩进                                        :se ai
  89.     扩展tab                                         :se et
  90.     特殊注释(mail)                                :se comments=n:>;,n:\|
  91.    
  92.     运行GDB                         M-x gdb                        
  93.     显示GDB模式                     C-h m                          
  94.     step one line                   M-s
  95.     next line                       M-n
  96.     step one instruction (stepi)    M-i                           
  97.     finish current stack frame      C-c C-f                        
  98.     continue                        M-c                           
  99.     up arg frames                   M-u                           
  100.     down arg frames                 M-d                           
  101.     copy number from point, insert at the end
  102.                                     C-x &                          
  103.     set break point                 C-x SPC
复制代码


11.3.5 Vim设置
--------------
要使用Vim的全部功能和关键字高亮显示,请在~/.vimrc或/etc/vimrc中添加如下内容:

set nocompatible
set nopaste
set pastetoggle=<f11>;
syn on

粘贴模式能避免自动缩进功能影响在控制台终端下的剪切-粘贴操作,它更象是“:set noai”。

有关GnuPG整合的信息参阅〖14.4.2 在Vim中使用GnuPG〗

11.3.6 Ctags
------------
执行apt-get install exuberant-ctags,接着就可以在源代码文件中运行ctags了。在Vim中输入:tag function_name可
直接跳到function_name的开始行。它适用于C、C++、Java、Python、和其它许多编辑语言。

Emacs有相同的ctags功能。

11.3.7 将高亮显示的屏显内容转化为HTML文件
-----------------------------------------
在Vim命令模式下输入so \$VIMRUNTIME/syntax/2html.vim可以将屏幕上高亮显示的文本转化为HTML代码,然后:w file.html存盘,:q退出。对C等源代码特别适用。

11.3.8 用vim分割屏显
--------------------
vim可以在多分割窗口(multi-split-screen )环境下编辑多个文件。想了解有关详情可输入:help usr_08.txt。

要分割屏幕显示多个不同文件,在vi命令提示符后输入:

:split another-file
:vsplit another-file

或者在shell提示符后输入:

$ vi -o file1.txt file2.txt # 水平分割
$ vi -O file1.txt file2.txt # 垂直分割

就可以打开多窗口vi。

$ vimdiff file.txt~ file.txt # 检查file.txt最近的修改情况
$ vimdiff file.en.sgml file.fr.sgml # 检查翻译情况
$ gvimdiff file.txt~ file.txt # 在X下

上述操作可以明确地显示源始文件与备份文件的差别。对SGML文件,它进行标签匹配检查,所以用它来检查翻译结果十分有效。

用CTRL-W命令指定光标移动:

CTRL-W + 扩大窗口
CTRL-W - 缩小窗口
CTRL-W h 移动到窗口左边
CTRL-W j 移动到窗口下边
CTRL-W k 移动到窗口上边
CTRL-W l 移动到窗口右边
...

下列命令用于滚屏控制:

:set scrollbind
:set noscrollbind
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP