Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   VIM редактор (трюки) (https://javascript.ru/forum/offtopic/39725-vim-redaktor-tryuki.html)

Murdoc 09.07.2013 15:34

VIM редактор (трюки)
 
Подскажите как:

1 Есть код:
var handler = function(req, res) {
  fs.readFile('./views/index.html', function (err, data) {
    console.log(data);
    if (err) throw err;
    res.writeHead(200);
    res.end(data);
  }); 
}



Необходимо закомментировать строчным комментарием ("//") вначале каждой строки. Должно быть так:

//var handler = function(req, res) {
//  fs.readFile('./views/index.html', function (err, data) {
//    console.log(data);
//    if (err) throw err;
//    res.writeHead(200);
//    res.end(data);
//  }); 
//}




В теории, я бы сделал так (курсор на первом символе первой строки):
CTRL + v
7j
Shift + i
//
Esc


Но это не работает(

Murdoc 09.07.2013 15:57

работает.. vim подтормаживает (

monolithed 09.07.2013 17:12

# 1. выделить блок
shift+v+enter

# 2. Закомментировать
:s/^/\/\/

# 3. Разкомментировать
:s/^/\/\//


Добавь в map, делов то

Murdoc 09.07.2013 20:00

мой вариант универсальней)

кстати, толи мой .vimrc где-то косячит то ли какой-то плагин создает конфликт, но это:

# 2. Закомментировать
:s/^/\/\/


не работает (
комментирует только первую строку.. хотя вроде выражение верно



А это:

# 3. Разкомментировать
:s/^/\/\//


разве не так надо:

:s/^\/\//

Murdoc 09.07.2013 20:11

Сейчас посмотрел, у меня в конфиге уже добавлены были когда-то:
" F2: Comment selected Block with #'s
map <F2> :s/^\(.*\)$/\/\/\1/g<CR>
 
" F3: Uncomment selected Block thats commented with #'s
map <F3> :s/^\/\///g<CR>


но желания их использовать никогда не возникало

Murdoc 09.07.2013 20:15

А как скопировать в буфер код из VIM, особенно если в окне несколько окон?
Или вставить в VIM из буфера код, чтоб он не потерял свое структуры?

Было бы удобно - выделил мышкой и CTRL - c.
Может есть какие рецепты?

Из личного опыта:
Скопировать из VIM можно выполнив :set nonumber (уберет номера строк)
но каждый раз так делать неохота и это не работает с многооконностью

monolithed 10.07.2013 00:11

Цитата:

Сообщение от Murdoc
разве не так надо:
:s/^\/\//

Ага, опечатался

Цитата:

Сообщение от Murdoc
А как скопировать в буфер код из VIM, особенно если в окне несколько окон?

v + стрелочка (или shift + v) - выделить, yy - скопировать (в mac os у меня работает cmd + c)

Ну и чтобы копировать без форматирования:

set clipboard=unnamed
set paste!

Цитата:

Сообщение от Murdoc
Было бы удобно - выделил мышкой и CTRL - c.

А вообще :nopaste убивает режим форматирования, только если захочешь его добавить в конфиг типа:
imap <D-v> ^O:set paste<Enter>^R+^O:set nopaste<Enter>

То нужно будет отключить:
set smartindent


PS: мой конфиг

iKillMaxmaxmaximus 10.07.2013 00:13

Цитата:

Сообщение от Murdoc
VIM

а зачем нужен вим если у него оформление говно и есть нотпад?

monolithed 10.07.2013 00:22

Цитата:

Сообщение от iKillMaxmaxmaximus
а зачем нужен вим если у него оформление говно и есть нотпад?

Среди консольных редакторов ему равных нет

iKillMaxmaxmaximus 10.07.2013 00:30

Цитата:

Сообщение от monolithed
Среди консольных редакторов ему равных нет

а зачем нужны консольные редакторы если есть не консольные редакторы?


Часовой пояс GMT +3, время: 16:37.