注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我的博客

笨笨猫

 
 
 

日志

 
 

复制当前行  

2011-09-07 16:55:36|  分类: MeeGo |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

复制当前行

这是个经常要用到的操作,以前要么老老实实 Mark 当前行的行首和行尾,然后复制。整个按键流程是:


  1. Ctrl-a 光标到行首
  2. Ctrl-Shift-Space 设置标记
  3. Ctrl-e 光标到行尾。如此这一行就被选为激活的区域了
  4. Alt-w 复制当前激活的区域


要么按我比较习惯的操作先剪切当前行,再撤消上一次的剪切操作


  1. Ctrl-a 光标到行首
  2. Ctrl-k 剪切至行屋,该行消失
  3. Ctrl-/ 撤消上一次的操作,该行重现


可以看到,方案二比方案一省一次按键,而且 Ctrl 键不用松开。不过,如此基本的操作要
按三个键还是太麻烦了,而且方案二会让文件变成被编辑过的状态。其实,可以发挥一下
“按我说的做”的精神。为什么不把 Alt-w 变的更聪明一些,当没有激活的区域时就复制
当前的一整行呢? 说做就做:


;; Smart copy, if no region active, it simply copy the current whole line
(defadvice kill-line (before check-position activate)
(if (member major-mode
'(emacs-lisp-mode scheme-mode lisp-mode
c-mode c++-mode objc-mode js-mode
latex-mode plain-tex-mode))
(if (and (eolp) (not (bolp)))
(progn (forward-char 1)
(just-one-space 0)
(backward-char 1)))))


(defadvice kill-ring-save (before slick-copy activate compile)
"When called interactively with no active region, copy a single line instead."
(interactive (if mark-active (list (region-beginning) (region-end))
(message "Copied line")
(list (line-beginning-position)
(line-beginning-position 2)))))


(defadvice kill-region (before slick-cut activate compile)
"When called interactively with no active region, kill a single line instead."
(interactive
(if mark-active (list (region-beginning) (region-end))
(list (line-beginning-position)
(line-beginning-position 2)))))


;; Copy line from point to the end, exclude the line break
(defun qiang-copy-line (arg)
"Copy lines (as many as prefix argument) in the kill ring"
(interactive "p")
(kill-ring-save (point)
(line-end-position))
;; (line-beginning-position (+ 1 arg)))
(message "%d line%s copied" arg (if (= 1 arg) "" "s")))


(global-set-key (kbd "M-k") 'qiang-copy-line)
上面还多加了一个配置,就是把 Alt-k 设成复制光标所在处到行尾。与 kill-line 的
Ctrl-k 对应。这样一来,如果是要拷贝一整行的话,只要将光标移动到该行任意位置,按
下 Alt-w 就行了。如果是复制某个位置到行尾的文字的话,就把光标移到起始位置处,按
Alt-k 。比默认的操作简化了很多。
  评论这张
 
阅读(999)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017