LINUX.ORG.RU

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


0

0

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

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

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

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

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

Zubok ★★★★★ ()
Ответ на: Re: [emacs] склеить строки от Rastafarra

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

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


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

Zubok ★★★★★ ()
Ответ на: Re: [emacs] склеить строки от Zubok

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

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

Zubok ★★★★★ ()

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

> M-^

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

Komintern ★★★★★ ()
Ответ на: Re: [emacs] склеить строки от Rastafarra

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

>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 ★★★★★ ()
Ответ на: Re: [emacs] склеить строки от Komintern

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

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

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

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

много
букаф

M-^
------

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

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

Rastafarra ★★★★ ()
Ответ на: Re: [emacs] склеить строки от Zubok

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

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

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

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

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

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

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

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

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

Rastafarra ★★★★ ()
Ответ на: Re: [emacs] склеить строки от Rastafarra

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

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

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

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