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-f
iş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-f
after M-l
, bölgeyi genişletmez, çünkü sonunda etkin bir bölge yoktur M-l
( downcase-word
varsayılan olarak bağlıdır ).
M-l
OP tarafından atıfta bulunulan varsayılan ciltleme ( downcase-word
) değil,my-mark-current-line
C-S-f
ile 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-SPC
C-f
C-f
C-f
forward-char
C-S-f
forward-char
C-f
C-S-f
C-f