LINUX.ORG.RU

Vim -> MM


0

0

Была DOS раньше программка такая. Микромир называлась. Под Линух слабали что-то похожее, МакроМир назвали, но не то! Не та функциональность.

От МикроМира к Vim, ну или к Emacs, на худой конец, хотелось бы прикрутить возможность по <Alt>+стрелка менять:

-> английские перевести в русские. <- русские в английские вверх - все в верхний регистр вниз - все в нижний регистр.

Работает оно так: встаешь на символ, жмешь, оно меняет и переводит курсор к следующему символу.

Ответ на: комментарий от nsav-ng

2nsav-ng Раз аффтар молчит, задам свой вопросик. Можно ли emacx в гуе довести до состояния нормального кривого редактора под offtopic? То есть прикрутить ctrl+[zxcvy]. И можно ли заставить enter работать как C-j, то есть делать отступ на новой строке?

devinull ★★
()
Ответ на: комментарий от devinull

> То есть прикрутить ctrl+[zxcvy]

Если ты имеешь в виду вставку и удаление, тогда cua-mode -- то, что тебе нужно.

> И можно ли заставить enter работать как C-j, то есть делать отступ на новой строке?

Конечно

(global-set-key "\C-j" 'newline)
(global-set-key "\^M" 'newline-and-indent)

Только ^M это не 2 символа, а один. Набирается с помощью C-q C-m

nsav-ng
()
Ответ на: комментарий от nsav-ng

Опа! Как все просто. Даже не интересно как-то. =) Спасибище!

devinull ★★
()

;; Составления таблиц преобразования оставлено читателю в качестве легкого упражнения.

(defvar en-ru (make-translation-table
	       '((?q . ?й))
	       '((?w . ?ц))))
(defvar ru-en (make-translation-table
	       '((?й . ?q))
	       '((?ц . ?w))))

(defmacro define-command-on-point (name func &optional keybinding)
  (let ((p (gensym)))
    `(prog1
	 (defun ,name (,p)
	   (interactive "d")
	   (funcall ,func ,p (1+ ,p))
	   (goto-char (1+ ,p)))
       ,(when keybinding
	  `(global-set-key ,keybinding ',name)))))

(defmacro ltr (table)
  (let ((beg (gensym)) (end (gensym)))
  `(lambda (,beg ,end)
     (interactive "r")
     (translate-region ,beg ,end ,table))))

(define-command-on-point upcase-char #'upcase-region (kbd "<M-up>"))
(define-command-on-point downcase-char #'downcase-region (kbd "<M-down>"))
(define-command-on-point russify-char (ltr en-ru) (kbd "<M-left>"))
(define-command-on-point englify-char (ltr ru-en) (kbd "<M-right>"))

nsav-ng
()
Ответ на: комментарий от nsav-ng

Спасибо за Емакс-ный вариант. Ну что же, таблицу допишу. Вот только vi как-то привычнее (не скажу, что лучше - и тот у другой хороши, именно привычнее), я уже с ним во многом разобрался и принаровился...

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

Fortran
() автор топика
Ответ на: комментарий от nsav-ng

Хм, а привести как именно оно выглядит в лом, да? :)

Основная проблема с Емаксом (для меня) - документация. Читать на мониторе, да еще на не нашем как-то не катит. А вот с книжкой по нему проблемы (в Библео Глобусе не нашел).

Fortran
() автор топика
Ответ на: комментарий от Fortran

C-s ? кстати рекомендую для начала пройти туториал 30 минут времени, зато потом на знаниях больше выиграешь. Вобщем C-u C-h t и вперед.

kuruu
()
Ответ на: комментарий от Fortran

> Хм, а привести как именно оно выглядит в лом, да? :)

Нет, я просто ответил на твой вопрос. Привыкай, что телепатов в мире мало, поэтому далеко не все будут угадывать что ты хочешь, если вопрос задаешь неконкретно.

Есть функция search-forward-regexp, правда она по дефолту не забидена ни на какую клавишу.

> Основная проблема с Емаксом (для меня) - документация. Читать на мониторе, да еще на не нашем как-то не катит. А вот с книжкой по нему проблемы (в Библео Глобусе не нашел).

Что поделаешь, не все коту масленица. Хотя я читаю с экрана и не жалуюсь. Кстати, открою тебе большой секрет -- документацию по емаксу можно распечатать :)

nsav-ng
()
Ответ на: комментарий от nsav-ng

Не катит. Пробовал (по другому поводу, правда). Книжка есть книжка.

Fortran
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.