是否可以使vim標記(例如mm)指向它們最初設定的字元而不是字元的原始行/列位置?
例如,如果我在下面的例句中的單字“politicians”(第1 行,第72 列)的第一個字母上輸入mm,然後刪除單字“entries”,然後輸入`m,我的遊標將返回到原來的狀態游標位置(第 1 行,第 72 列)現在是單字「politicians」中字母「a」的位置。我知道這是 vim 的預期行為,但是我希望“m”讓我回到政客的“p”,即使它的行/列位置已經改變。
例句:
為期 10 天的封鎖是在對政界人士和企業進行匿名修改以及肯尼迪遇刺等事件之後發生的。
我發現我想要的行為對於我的編寫/編輯方式更有用(特別是當使用 Vim 超出其最初的編碼目的時)。 Viemu 是一個插件,它將 Vim 的大部分功能添加到 Word 句柄中,這符合我的願望。不幸的是,Viemu 並不是 Vim 的完美移植,我更喜歡在 Vim 中編寫所有文字(電子郵件、文章等,而不僅僅是程式碼)。不知道如何讓 Vim 以我想要的方式處理標記是我不專門使用它的主要原因之一。
先感謝您,
PS 這是我第一次在 stackexchange/超級用戶上發帖,所以如果我沒有遵循正確的格式/協議來提問,請原諒我,並請糾正我。
答案1
雖然標記將根據新增/刪除的行進行調整,但列位置不會;你是對的。您所期望的行為肯定有多種好處;我想它只是還沒有實現,可能是因為涉及的複雜性。 (它會破壞與 vi 和以前的 Vim 版本的兼容性,這一點不能掉以輕心。)
雖然可以使用:autocmd
s 掛鉤某些編輯操作,但這通常是不可能的(例如:s
無法攔截之類的東西),因此在 Vimscript 中模擬該行為會很困難,而且我不知道任何此類實現。