LINUX.ORG.RU

[emacs] склеить строки

 


0

0

вопрос: как склеить строки в одну? как склеить выделенный блок в строку?

есть «M-^», но оно склеивает «вверх» и по одной строке. я же хочу вимовский «J» -- собрать выделенный блок в строку «вниз», т.е. поднять следующую строку до текущей, а не текущую до предыдущей.

>т.е. поднять следующую строку до текущей, а не текущую до предыдущей.

C-u M-^ -- не то, что ты хочешь?

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

Ну, что-то я сходу не нашел. Как-то у меня ранее не было потребностей в 
таком действии. Может, кто-то еще поможет, так как у меня сейчас 
времени нет на поиски. Если что, то можно вбить такую функцию в 
~/.emacs и забиндить ее на кнопочки какие-нибудь:


(defun join-region (start end)
  (interactive "r")
  (save-excursion 
    (while (> (point) start)
      (join-line))))

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

Хотя я тут глючок уловил -- лишний раз делается join-line, поэтому блок один лишний раз джойнится. Надо более по-умному переписать, но позже. сейчас уже не могу.

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

да лаТно, я думал есть изкаробочный вариант. вон, в приличных редакторах же есть :))

thanx и на этом :)

Rastafarra ★★★★
() автор топика

> M-^

а как вы нажимаете собственно M-^?? у меня ^ это shift+6. у вас по-другому? по alt+shift+6 ничего не получается.

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

Meta-X = Alt (зажали)-X = Esc (нажали-отпустили)+X

anonymous
()
Ответ на: комментарий от Rastafarra

>thanx и на этом :)

То есть тебя результат не интересует, да? :)

(defun join-region (start end)
  (interactive "r")
  (save-excursion 
    (end-of-line)
    (let ((counter (count-lines start (point))))
      (goto-char start)
      (while (> counter 0)
	(join-line 1)
	(setq counter (1- counter))))))

Можно пойти дальше и сделать универсальную функцию, которая в 
зависимости от того, выбран ли region или нет, будет соединять либо 
region, либо строчку. Все это повесить на кномпочку и пользоваться.


>да лаТно, я думал есть изкаробочный вариант. вон, в приличных 
редакторах же есть :))


Ты чо?! Ты на кого наехал?! Ты на емакс наехал?! :)

Если чего нужно, то ищи. Гугл в руки.

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

> по alt+shift+6 ничего не получается.

хм.... попробовал:

------
C-x b *test*

много
букаф

M-^
------

склеилось.переключил на русский, жмакнул M-^ -- предложило Eval.

должно работать :)

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

> То есть тебя результат не интересует, да? :)

да я бы доку почитал... в качестве разминки и практики elisp-а :)

> Ты чо?! Ты на кого наехал?! Ты на емакс наехал?!

все же забавно, что для «мегаредактора» нет такой простой и, казалось бы, естественной изкаробочной вещи... :)))

> Если чего нужно, то ищи. Гугл в руки.

так молчит он... паразит...

> Все это повесить на кномпочку и пользоваться.

thanx за велос^Wфункцию :)

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

>склеилось.переключил на русский, жмакнул M-^ -- предложило Eval.

Не пользуйтесь в Emacs иксовой переключалкой, потому что при переключении с ее помощью все комбинации клавиш перестают работать. Пользуйтесь емаксовской по C-\.

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