Geçici işaretleme modu etkinken Emacs'ın normal davranışı, bir kaydırma seçimi yaptığınızda, sonraki komutun kaydırma olmayan bir hareket olması durumunda işaretin devre dışı bırakılmasıdır. Örneğin, komutlardan sonra M-l(geçerli satırı aşağıdaki işlevle işaretlemek için) ve C-fişareti devre dışı bırakılır. Bu davranışı sonradan elisp'ten nasıl taklit edebilirim (set-mark-command nil)?
Örneğin:
(defun my-mark-current-line ()
(interactive)
(beginning-of-line)
(set-mark-command nil)
(end-of-line)
(forward-char))
(global-set-key (kbd "M-l") 'my-mark-current-line)
Şimdi Ml Cf yapmak ve bölge büyüyecek, ama bunun yerine, varsayılan davranış, yani Cf zaman bölge devre dışı bırakmak istiyorum ve CSf ile büyümek istiyorum.
EDIT : buna izin veren set-mark-komutu için farklı bir işlev kullanmalı? Ben bulamadım.
C-f, kullandığınız tüm diğer gezinme komutları için de geçerlidir.
C-fafter M-l, bölgeyi genişletmez, çünkü sonunda etkin bir bölge yoktur M-l( downcase-wordvarsayılan olarak bağlıdır ).
M-lOP tarafından atıfta bulunulan varsayılan ciltleme ( downcase-word) değil,my-mark-current-line
C-S-file benzerdir . Muhtemelen istediğinizi, öncelikle bir bölgeyi aktifse devre dışı bırakan ve sonra ne yapar ( ); ve doğrudan bağlanın . Emacs'ı terminal modunda kullanırsanız ve her ikisinin de terminal ikisi arasında ayrım yapamayacağı gibi davranacağını unutmayın.C-SPCC-fC-fC-fforward-charC-S-fforward-charC-fC-S-fC-f