vim 如何比较同一文件中的几行

Vim、Emacs配置和使用
回复
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

vim 如何比较同一文件中的几行

#1

帖子 自由建客 » 2011-07-22 17:46

有什么好点的方法,比较同一文件内的某几行和某几行?
比如我写一段,复制到第二段,略微修改,我想高亮查看两段不同之处。

代码: 全选

CREATE TRIGGER Client_T_AU_CityChanged
    AFTER UPDATE OF CN_Id ON Client
    FOR EACH ROW
    WHEN NEW.CN_Id != OLD.CN_Id
BEGIN
    UPDATE CityName SET
        Ref = Ref-1,
        ActionRef = ActionRef - (CASE WHEN OLD.Disable THEN 0 ELSE 1 END)
    WHERE Id = OLD.CN_Id;
    UPDATE CityName SET
        Ref = Ref+1,
        ActionRef = ActionRef + (CASE WHEN NEW.Disable THEN 0 ELSE 1 END)
    WHERE Id = NEW.CN_Id;
END;

CREATE TRIGGER Client_T_AU_UnitChanged
    AFTER UPDATE OF UN_Id ON Client
    FOR EACH ROW
    WHEN NEW.UN_Id != OLD.UN_Id
BEGIN
    UPDATE UnitName SET
        Ref = Ref-1,
        ActionRef = ActionRef - (CASE WHEN OLD.Disable THEN 0 ELSE 1 END)
    WHERE Id = OLD.UN_Id;
    UPDATE UnitName SET
        Ref = Ref+1,
        ActionRef = ActionRef + (CASE WHEN NEW.Disable THEN 0 ELSE 1 END)
    WHERE Id = NEW.UN_Id;
END;
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: vim 如何比较同一文件中的几行

#2

帖子 lilydjwg » 2011-07-22 18:24

只能先分成两个文件了。应该有相应的插件的。
头像
lainme
论坛版主
帖子: 7805
注册时间: 2008-09-13 19:17
系统: Arch Linux (x86_64)
联系:

Re: vim 如何比较同一文件中的几行

#3

帖子 lainme » 2011-10-13 19:59

曾经有个plugin叫blockdiff。但现在不能用了
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: vim 如何比较同一文件中的几行

#4

帖子 eexpress » 2011-10-13 21:23

这需求少。
● 鸣学
头像
lainme
论坛版主
帖子: 7805
注册时间: 2008-09-13 19:17
系统: Arch Linux (x86_64)
联系:

Re: vim 如何比较同一文件中的几行

#5

帖子 lainme » 2011-10-13 21:39

万能的神写一个?
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: vim 如何比较同一文件中的几行

#6

帖子 eexpress » 2011-10-13 21:41

vim的语法,有人很熟悉啊。那lixxx啥的。找他。
● 鸣学
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

Re: vim 如何比较同一文件中的几行

#7

帖子 fanhe » 2011-10-14 1:58

直接提取文本然后 diff 一下输出结果不就行了
头像
Fermat618
帖子: 728
注册时间: 2008-12-28 16:01

Re: vim 如何比较同一文件中的几行

#8

帖子 Fermat618 » 2011-10-14 17:19

这需要感觉的确少,就算写了插件也会沉掉,自己不会写插件的话而要上网找插件的话,不太现实。

如果重复的只是简单几行,一眼能看完了,没什么必要用插件。如果是重复的行数或者者次数比较多,把那部分代码独立出来或许是个更好的选择。
爱因斯坦会弹钢琴
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: vim 如何比较同一文件中的几行

#9

帖子 自由建客 » 2011-10-14 17:43

行数不多次数多。这个需求是我在用 SQLite 的时候提出的,那玩意不支持存储过程,不能自定义函数,没办法,只能写多次。
回复