Emacs: как удалить текст без kill ring? - PullRequest
77 голосов
/ 12 марта 2009

Я хотел бы просто удалить какой-нибудь текст, чтобы я мог восстановить другой текст вместо . Как я могу это сделать? C-w обрезает выделенный текст, чтобы убить кольцо, и я в конечном итоге без текста, который я хотел восстановить.

Кроме того, возможно ли восстановить текст напрямую вместо некоторого текста, даже не нажимая кнопки, чтобы убить его?

Ответы [ 14 ]

1 голос
/ 07 октября 2011

Добавьте эквивалент удаления ключей kill-region и kill-line C-w и C-k следующим образом. Связаны с клавишами C-v и C-z.

;; A keybinding to delete-region gives a good "Windows CUT Ctrl-x equivalent".
;; What keybinding to use is awkward to choose.
;; using C-v "Windows PASTE Ctrl-v" is quite a subversive option.
;;  C-v = scroll up in emacs which I have no use for.
(global-set-key (kbd "C-v") 'delete-region)

;; To have also a "Windows CUT" alternative to C-k (kill-line) this can be done:
(defun delete-line () "delete line, take it out of kill ring. bind this func to C-z"
 (interactive)
 (setq last-command 'delete-line)
 (kill-line)
 (setq kill-ring (cdr kill-ring))
 (setq kill-ring-yank-pointer kill-ring)
 (setq last-command 'delete-line)
)
(global-set-key (kbd "C-z") 'delete-line)
;; without setting of last-command 2+ C-zs mess up kill-ring
1 голос
/ 27 декабря 2010
(defun copy-to-register-z (p1 p2)
  "Copy text selection to register named “z”."
  (interactive "r")
  (copy-to-register ?z p1 p2))
(defun replace-register-content-z (p1 p2)
  "Replace register named “z”'s content."
  (interactive "r")
  (delete-region p1 p2)
  (insert-register ?z))
(global-set-key (kbd "C-c c") 'copy-to-register-z)
(global-set-key (kbd "C-c v") 'replace-register-content-z)
0 голосов
/ 27 февраля 2017

как удалить текст без kill ring?

функция delete-region удалит выбранный регион, не добавляя его в список уничтожений

Кроме того, можно ли дергать текст напрямую вместо некоторого текста даже не нажимая кнопки, чтобы убить его?

Я думаю, вы спрашиваете, как заменить текст в выбранном регионе чем-то, что вы уже положили в список уничтожений.

Установка (delete-selection-mode 1) позволит вам дергать / вставлять в выбранный регион. Это также позволяет вам просто набирать и заменять выбранный регион.

В версии 25.1.1 в OS X мне также пришлось добавить (setq select-enable-primary nil), чтобы предотвратить копирование выбранного региона в список уничтожений

0 голосов
/ 04 июня 2013

Вот версия kill-region, которая не вводит значения в список уничтожений.

(defun kill-or-delete-region (beg end prefix)
  "Delete the region, storing it in the kill-ring.
If a prefix argument is given, don't change the kill-ring."
  (interactive "r\nP")
  (if prefix
      (delete-region beg end)
    (kill-region beg end)))

(global-set-key (kbd "C-w") 'kill-or-delete-region)

Это позволяет вам делать C-w как и раньше, но C-u C-w теперь удаляет текст без изменения kill-ring.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...