辖vim之威学习emacs-基础篇(快捷键比较)

----------------------------------------
辖vim之威学习emacs
----------------------------------------
emacs 入门还是需要看入门,指南一类的文档,自带的文档就非常好,ctrl-h 有完整的帮助。
网上也有很多快捷键,使用入门类文章。
有一定基础后,就要不断的进行实战来提高了。
借助自己已经掌握的vim技巧来迅速提高emacs技巧的笔记

1. 查询man-page
   emacs: M-x manual-entry RET unix-command-name RET
   vim:   K

2. 执行shell 命令并读入输出到光标处
   emacs: C-u M-! shell-command
   vim:   r !shell-command
   例如我常读入shell date的输出添加到文档中

3. 重复参数
   emacs: M-n or C-u n
   vim:   n
   例如输入40个-字符

4. 自动完成输入
   emacs: M-/
   vim: C-f 及 C-n

5. 合并两行
   emacs: M-^
   vim:  J

6. 插入空行
   emacs: C-o C-O C-J C-e<RET>
   vim: o O

7. 位置register 的使用(请正确理解意思)

   emacs: C-x r SPC r  --> C-x r j r

   emacs 加书签: Alt-x bookmark

   vim:   mr --> 'r   mA --> 'A

8. 简写功能:

    emacs Alt-x abbrevate

   vim     :abbrevate

----------------------------------------
c程序员的扩展功能比较
----------------------------------------

emacs:    vim     说明

M-C \       =        缩进
M-m        ^        光标移动到第一个非空字符上

M-^         J        合并两行

M-x comment-region
M-x kill comment-region

M-C-a      [[      移动到函数头
M-C-e      []      移动到函数尾    
M-C-h     C-v      标记函数    

C-c C-u     ]#        移动到上一个预处理条件
C-c C-d     [#        移动到下一个预处理条件
M-;                添加注释

etags:                 ctags(taglist)
M-.                     C-]            

M-,                        C-t
C-x 4 .                 :ptags        
M-x tags-search            
M-x list-tags RETURN  taglist插件  显示文件tag

--------------------------------------------------------------------------------
语言使用特征比较
--------------------------------------------------------------------------------
C-h v RETURN load-path                    :set runtimepath?        emacs 的加载路径:
M-x: describing-coding-system            :set file-encoding?        查看编码格式
M-x: revert-buffer-with-coding-system    :e ++enc=xxxx 以指定的编码格式重新加载文件

M-x: set-buffer-file-coding-system              :set file-encoding=xxx  转换缓存中的文件编码格式,这样存盘是编码就改变了.



加载其它文件
(require 'name)                source name.vim
(load "name.el)

自动运行命令
(addhook 'c++-mode-hook       autocmd BufRead *.cpp :call fun
    '(lambda() ...))

绑定快捷键
(global-set-key cmd 'fun)    nmap <silent> <F8> :call fun<CR>
(define-key c++-mode-map     imap <F9> :call fun<CR>
    (kbd "c-\") 'fun)

 

-----------------------------------------------------------------
emacs 与 vim 命令对比(网上摘录)
-----------------------------------------------------------------
exit:                           C-x C-c         :qa /:wq /:xa /:q!
Get back/command mode:          C-g             <esc>
Backward(left):                 C-b             h
Forward(right):                 C-f             l
Next(down):                     C-n             j
Previous(up):                   C-p             k
stArt of line(^):               C-a             0
End of line($):                 C-e             $
mUltiple commands:              C-u nnn cmd     nnn cmd
Multiple commands:              M-digitkey cmd
save File:                      C-x C-s         :w
beginning of buffer:            M-<             1G
end of buffer:                  M->             G
scroll forward 1 screen:        C-v             ^F
scroll forward 1/2 screen:                      ^D
scroll forward 1 line:                          ^E
scroll backward 1 screen:       M-v             ^B
scroll backward 1/2 screen:                     ^U
scroll backward 1 line:                         ^Y
scroll the other window:        M-C-v
delete under cursor:            C-d             x
delete from cursor to eol:      C-k             D
iSearch forward:                C-s
isearch Reverse:                C-r
Search forward:                 C-s enter       /
search Reverse:                 C-r enter       ?
isearch regexp:                 M-C-s
isearch backward regexp:        M-C-r
search regexp:                  M-C-s enter     /
search backward regexp:         M-C-r enter     ?
Help:                           C-h C-h         :help
Help Apropos:                   C-h a
Help key Bindings:              C-h b           :help [key]
Help Info:                      C-h i
Help Major mode:                C-h m
Help tutorial:                  C-h t           :help howto
Undo:                           C-_             u
Redo:                           C-f             ^R
Mark cursor position:           C-x r SPC       m{a-zA-Z}
eXchange Mark and position:     C-x C-x
goto mark in current file:      C-x r j         '{a-z}
goto mark in any file:                          '{A-Z}
copy region:                    M-w             {visual}y
kill region:                    C-w             {visual}d
Yank and keep buffer:           C-y
Yank from kill buffer:          M-y             p
convert region to Upper:        C-x C-u         {visual}U
convert region to Lower:        C-x C-l         {visual}u
Insert special char:            C-q octalnum/keystroke
                                                ^V decimal/keystroke
replace:                        M-x replace-string      :%s/aaa/bbb/g
replace regexp:                 M-x replace-regexp      :%s/aaa/bbb/g
query replace:                  M-%                     :%s/aaa/bbb/gc
query replace:                  M-x query-replace
query replace regexp:           M-x query-replace-regexp
Open file:                      C-x C-f         :r file
Save file:                      C-x C-s         :w
Save all buffers:               C-x s           :wa
Save as:                        C-x C-w file    :w file
Prompt for buffer:              C-x b
List buffers:                   C-x C-b         :buffers
Toggle read-only:               C-x C-q         :set ro
Prompt and kill buffer:         C-x k
Split vertical:                 C-x 2           :split
Split horizontal:               C-x 3           :vsplit (ver. 6)
Move to other window:           C-x o           ^Wp
Delete this window:             C-x 0           :q
Delete other window(s):         C-x 1           ^Wo
run shell in bg:                M-x compile
kill shell run in bg:           M-x kill-compilation
run make:                                       :make Makefile
check error message:            C-x`            :echo errmsg
run shell and record:           M-x shell       :!script -a tmp
...clean BS, ...                                :!col -b <tmp >record
...save/recall shell record:    C-x C-w record  :r record
run shell:                      M-! sh          :sh
run command:                    M-! cmd         :!cmd
run command and insert:         C-u M-! cmd     :r!cmd
run filter:                     M-| file        {visual}:w file
run filter and insert:          C-u M-| filter  {visual}:!filter
show option                                     :se[t] {option}?
reset option to default                         :se[t] {option}&
reset boolean option                            :se[t] no{option}
toggle boolean option                           :se[t] inv{option}
wrap text at column 72                          :se tw=72
do not wrap                                     :se tw=0
autoindent                                      :se ai
expand tab                                      :se et

在多个文件中查找和替换.

下面只是意会,不是实际操作

把该目录下所有的cpp文件中origin 替换为 replace

emacs: 在dired 中操作

M-x find-name-dired *.cpp t Q <origin> <replace>

vim: 借助于命令行find 命令,用argdo在多个文件中查找替换.

vim `find . -name *.cpp" argdo! %s/origin/replace/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值