Monthly Archives: March 2010

Emacs中在指定区域(region)中删除重复行的函数

将以下代码加入到.emacs文件中

(defun uniq-lines (beg end)
  "Unique lines in region.
Called from a program, there are two arguments:
BEG and END (region to sort)."
  (interactive "r")
  (save-excursion
    (save-restriction
      (narrow-to-region beg end)
      (goto-char (point-min))
      (while (not (eobp))
        (kill-line 1)
        (yank)
        (let ((next-line (point)))
          (while
              (re-search-forward
               (format "^%s" (regexp-quote (car kill-ring))) nil t)
            (replace-match "" nil nil))
          (goto-char next-line))))))

然后在编辑区域中设定region. 并通过

M-x uniq-lines

执行函数。

Emacs中好用的cua-mode (column editing)

emacs中有一个cua-mode是一个非常好用的矩阵编辑模式(列编辑模式),可以定义轻易定义一个矩阵,并进行删除、粘贴、复制,矩阵前插入,矩阵后追加等操作。
在被编辑的buffer中:

M-x cua-mode

然后移动光标到矩阵左上角并使用

Ctrl-Enter

定义起始mark, 然后移动光标,被选中的矩阵将被粉红色标记出来。
之后可以按照常规的操作快捷键进行插入、删除、复制、追加等操作。

Emacs Column Editing from Mark Mansour on Vimeo.

SubVersion 修改已发布版本的备注信息的方法

在被svn版本控制的代码目录下输入以下命令

svn propedit svn:log --revprop -r547661

其中propedit参数表明对属性进行编辑,svn:log参数表明修改日志, -revprop指明要求指定revision版本号 -r版本号。
输入后会自动打开编辑器,并载入以前的日志信息,然后修改保存,退出编辑器后自动完成修改。