2013-07-04 57 views
6

我想用Pdired-mode打印。這適用於我通過lpr-switches設置的默認打印命令,但我經常要編輯該命令。例如,如果P建議lpr,我想添加-o number-up=2。問題是這個在-o之後包含一個空格,並且打空格鍵給我No match。如何調整lpr(或其他面臨相同問題的命令)?如何在迷你緩衝區中輸入空格而不是完成單詞?

+0

這可能有助於改變標題你的問題,以便更容易找到有類似問題的人。可能是這樣的:「在迷你緩衝區中輸入空格而不是完成一個單詞」 – Tyler

+0

完成。謝謝,泰勒。 –

回答

6

在迷你緩衝區中,space被綁定到完成命令。如果你想輸入一個實際的'',你需要引用它:C-q <space>。這對我來說很重要,所以我已經綁定M-<space>在迷你緩衝區中輸入一個文字空間:

編輯:下面的phils評論,下面的代碼片斷是毫無意義的。您可以在沒有任何鍵綁定的情況下使用M-space獲得所需的行爲。

(define-key minibuffer-local-completion-map "\M- " 
    (lambda() (interactive) (insert " "))) 
+0

完美,泰勒,非常感謝。 –

+1

現在(至少)'M-SPC'被綁定到'just-one-space',這在重新格式化文本時通常非常有用,但也意味着您可以在不需要代碼的情況下使用此答案。 – phils

+0

@phils當我把它放在一起時,我無法相信我錯過了。完成過去使我在bibtex模式下變得瘋狂,並且我認爲我使用'M-space'真的很聰明,因爲它在迷你緩衝區中沒有用處。除了它是! D'哦。 – Tyler

2

您也可以在每個小緩衝區的鍵盤佈局的結合SPCself-insert-command。那麼你不需要使用C-q

(目前是21世紀在minibuffer完成沒有理由SPC。Emacs中終於擺脫了這個遺蹟的文件名完成的,但它還未意識到了這種詭計WRT等各類完成的。可打印字符應綁定到完成命令---他們都應該自我插入不能夠插入?SPC。不使用C-q是過時了。)

+0

嗨德魯,你能更具體的什麼你的意思是「每個小緩衝鍵盤映射」,請嗎? –

+0

這些是minibuffer完成鍵盤映射(我應該添加限定詞「completion」,因爲你只需要完成keymaps):'minibuffer-local-completion-map','minibuffer-local-must-match-map', minibuffer-local-filename-completion-map「,」minibuffer-local-filename-must-match-map「。對於最近的Emacs版本,您可能會忘記修改後兩個版本。 – Drew

+0

嗨德魯,根據你的描述,我能想出的最好的是'(define-key minibuffer-local-completion-map(kbd「」)self-insert-command)'和其他函數的對應。但是我仍然得到'No match' :-( –

相關問題