簡體   English   中英

Emacs / vim快速復制粘貼

[英]Emacs / vim quick copy paste

我正在嘗試過渡到emacs(使用邪惡模式/ vim鍵盤綁定),與使用鼠標相比,我很難感覺到效率/生產力。 這是一個我發現自己真的很慢的情況的示例:

for i in range(self.allData.shape[0]):
    self.correctSequence = self.displayNumbers(i, self.allData)
    self.userSequence = self.numberEntry()

    self.allData.set_value(i, 'userSequence', ''.join(self.userSequence))

    if len(self.correctSequence) != len(self.userSequence):
        self.allData.set_value(i, 'correct', 0)
    else:
        if list(reversed(self.correctSequence)) == self.userSequence:
            self.allData.set_value(i, 'correct', 1)
        else:
            self.allData.set_value(i, 'correct', 0)

對於我來說,必須將self.allData的前4個實例self.allData為其他內容(例如self.testData ),而剩下的2個不變。

通常,用鼠標不會太糟。 例如,我可以將第一個allData替換為testData ,將其復制,使用鼠標移動到接下來的3個事件中,然后為每個事件按CTRL-V。 或者更好的是,只需在sublime / atom中使用多個光標,然后一次性替換所有4個光標

我在帶有vim鍵綁定的emacs中使用spacesmacs。 因此,在emacs中,我發現自己必須執行以下操作:

  1. SPC-SPC a (跳到以a開頭的單詞)
  2. cw testData

對我要替換的每個單詞重復上述2個步驟

這似乎真的很低效,我想知道:我只是在使用一種低效的方法嗎? 有沒有更快的方法來做我想要的?

看來,即使我設法非常快地完成了這些步驟(4次),仍然需要進行很多鍵入操作,而且我看不到這比僅僅觸及鼠標要快得多。 是的,有人可能會提出這樣的論據,即我不斷摸索鼠標會浪費時間,但在我的腦海中,我卻想通過節省鼠標來節省打字時間,因為我可以按幾次CTRL-V來實現我的目標想。 在這種情況下,vim的速度究竟在哪里增長?

如果只想替換 ,則可以使用query-replace ,並將單詞一一替換。

您也可以使用replace-string ,但要記住將替換限制在緩沖區的一部分,激活該部分周圍的區域。

無論如何,這些命令可能會阻止您通過眼睛找到單詞,通過鼠標移動光標以及將手移回鍵盤。 而且他們也可以避免可能的忽視。 至少我不想在打字時將手從鍵盤上移開。 :)

我不確定Spacemacs的“ vim風格”如何,但是您可以在Vim中這樣做:

/all<CR>
cgntest<Esc>
.
.
.

要么:

/all<CR>
cetestData<Esc>
n.
n.
n.

要么:

:,$s/allD/testD/gc<CR>

也許這些方法之一也可以在Spacemacs中工作嗎?

除了通常的(通常是最佳的)答案, query-replace (請參閱@songyuanyao的答案)之外,您還可以使用輔助選擇來有優勢地在不同位置選擇性粘貼相同的內容。 region不同,次要選擇與光標位置(也稱為point )無關,因此無論光標在哪里,它始終可用。

而且與查詢替換不同,您可以按需粘貼它,而不必為每次匹配出現都進行回答。 如果使用刪除選擇模式,則只需選擇一些文本來替換,然后粘貼第二選擇即可替換它。

您可以使用鼠標來設置和粘貼輔助選擇-請參見Emacs Wiki上的“ 輔助選擇 ”,並參見Emacs手冊“節點輔助選擇”

如果您使用庫second-sel.el那么您也可以使用鍵盤上的輔助選擇,並從中獲得更多使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM