2011-10-19 9 views

risposta

9

Non è possibile modificare facilmente Emacs per avere il conteggio delle colonne basato su 1, la modifica dovrebbe essere nel codice C.

Tuttavia, è possibile calcolare la propria colonna e inserirla nella riga della modalità. Nota: questo richiede l'uso di force-mode-line-update - che potrebbe potenzialmente rallentare il tuo Emacs (tieni a mente solo nel caso in cui tra due anni Emacs si senta lento su un buffer di grandi dimensioni).

;; update the mode line to have line number and column number 
(setq mode-line-position 
     '("%p (%l," (:eval (format "%d)" (1+ (current-column)))))) 
;; force the update of the mode line so the column gets updated 
(add-hook 'post-command-hook 'force-mode-line-update) 

link Doc d'uso sono 'Variables Used In Mode Line' e 'Cursor Position Information'.

+0

Grazie; questo ha funzionato a meraviglia. –

1

Beh, potrebbe non essere la risposta migliore, perché non conosco bene Emacs. Ho modificato mode-line-position, che fa parte di mode-line-format. Prima di usarlo, guarda al valore originale, per sapere con certezza che non manca nulla.

(setq mode-line-position 
    '((-3 #("%p" 0 2 (help-echo "Size indication mode 
mouse-1: Display Line and Column Mode Menu" mouse-face mode-line-highlight local-map (keymap (mode-line keymap (down-mouse-1 keymap (column-number-mode menu-item "Display Column Numbers" column-number-mode :help "Toggle displaying column numbers in the mode-line" :button (:toggle . column-number-mode)) (line-number-mode menu-item "Display Line Numbers" line-number-mode :help "Toggle displaying line numbers in the mode-line" :button (:toggle . line-number-mode)) "Toggle Line and Column Number Display")))))) 
    (size-indication-mode (8 #(" of %I" 0 6 (help-echo "Size indication mode 
mouse-1: Display Line and Column Mode Menu" mouse-face mode-line-highlight local-map (keymap (mode-line keymap (down-mouse-1 keymap (column-number-mode menu-item "Display Column Numbers" column-number-mode :help "Toggle displaying column numbers in the mode-line" :button (:toggle . column-number-mode)) (line-number-mode menu-item "Display Line Numbers" line-number-mode :help "Toggle displaying line numbers in the mode-line" :button (:toggle . line-number-mode)) "Toggle Line and Column Number Display"))))))) 
    "(%l,[%c" 
    (:eval (format ",%d])" (1+ (current-column)))))) 

Il problema principale è che quando si rimuove %c (numero di colonna) dalla modalità-line-format, i tuoi (:eval (current-column)) opere molto lento. Non so come renderlo migliore.

3

A partire da Emacs 26 (non ancora rilasciato) ci sarà una manopola integrata per risolvere questo problema.

Per utilizzarla, impostare (setq column-number-indicator-zero-based nil) nel vostro .emacs

È possibile costruire un emacs dal ramo principale del repo git per ottenere questa funzione ora.

Problemi correlati