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 Но это не работает( |
работает.. vim подтормаживает (
|
# 1. выделить блок shift+v+enter # 2. Закомментировать :s/^/\/\/ # 3. Разкомментировать :s/^/\/\// Добавь в map, делов то |
мой вариант универсальней)
кстати, толи мой .vimrc где-то косячит то ли какой-то плагин создает конфликт, но это: # 2. Закомментировать :s/^/\/\/ не работает ( комментирует только первую строку.. хотя вроде выражение верно А это: # 3. Разкомментировать :s/^/\/\// разве не так надо: :s/^\/\// |
Сейчас посмотрел, у меня в конфиге уже добавлены были когда-то:
" 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> но желания их использовать никогда не возникало |
А как скопировать в буфер код из VIM, особенно если в окне несколько окон?
Или вставить в VIM из буфера код, чтоб он не потерял свое структуры? Было бы удобно - выделил мышкой и CTRL - c. Может есть какие рецепты? Из личного опыта: Скопировать из VIM можно выполнив :set nonumber (уберет номера строк) но каждый раз так делать неохота и это не работает с многооконностью |
Цитата:
Цитата:
Ну и чтобы копировать без форматирования: set clipboard=unnamed set paste! Цитата:
imap <D-v> ^O:set paste<Enter>^R+^O:set nopaste<Enter> То нужно будет отключить: set smartindent PS: мой конфиг |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Цитата:
К примеру чтобы окрыть файл в vim на определенной строке достаточно написать в терминале: vim +100 filename Без терминала нужно открывать редактор, и долго кликать мышкой по папкам (или наоборот), а потом еще и скролить до нужной строки. PS: Еще довольно часто бывает что некоторые IDE кешируют файлы (в частности этим грешит JetBrains). Представьте что ежедневно вы переключаетесь между между 10-15 ветками гита, и открыв очередной раз файл чтобы внести изменения вам отдается предыдующая версия файла. Не посмотрев дифф, можно закомитить совсем не то что хотели (у меня был один такой случай). В консольном редакторе подобные ситуации сводятся к минимуму. Еще IDE могут изменить кодировку файлов.... Иными словами, консольный редактор нужен для тех кто ценит свое время и время других |
или написать gedit +100 filename не?
я логики не уловил, вим хорош тем что у него есть один параметр с открытием на какой-то определенной строке? или что? тогда при чем тут его консольность? |
Цитата:
|
Цитата:
Цитата:
Еще очень полезные вещи: - открытие нескольких файлов в одном окне. - выполнение кнсольных команд не выходя из редактора. - мощная работа поиска и замены символов (аля sed) - макросы |
Цитата:
Цитата:
Цитата:
|
Установил, пробую юзать, странно очень))
но если гуй слетит, будет самое то |
Цитата:
Цитата:
|
Цитата:
|
monolithed, не, нету, видимо в этом дело?
|
Цитата:
|
With kinesis advantage to future.
Забил на vim, его глюки и плюсы, которые не перевешивают его минусы. В шторме нельзя настроить по человечески переключалку - прощай русский. А привыкать к нескольким редакторам лень. Решил проблему на аппаратном уровне, чего и остальным желаю. |
Цитата:
Цитата:
Нужен какой-нибудь плагин, который бы срабатывал при вставке кода в vim и редактировал код налету (как в webstorm при вставке кода) |
Цитата:
|
Цитата:
|
Цитата:
Кстати, можно вместо paste и nopaste использовать pastetoggle. Работает как переключатель: # Переключалка на F4 set pastetoggle=<F4> |
Цитата:
|
Цитата:
|
Цитата:
|
Сегодня обнаружил одну полезную функцию у vim. Как оказалось в vim можно сгенерировать html страничку, набрав команду в ex:
:TOhtml также можно указать конкретное количество строк. Ниже html разметка из моего .vimrc после команды :0, 30TOhtml <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>~/.vimrc.html</title> <meta name="Generator" content="Vim/7.3"> <meta name="plugin-version" content="vim7.3_v6"> <meta name="syntax" content="vim"> <meta name="settings" content="use_css,number_lines"> <style type="text/css"> <!-- pre { font-family: monospace; color: #ffffff; background-color: #000000; } body { font-family: monospace; color: #ffffff; background-color: #000000; } .lnr { color: #804000; } .PreProc { color: #c000c0; } .Statement { color: #804000; } .Comment { color: #008080; } --> </style> </head> <body> <pre> <span class="lnr"> 1 </span><span class="Comment">" ----------------------------------------</span> <span class="lnr"> 2 </span><span class="Comment">" Общие настройки VIM</span> <span class="lnr"> 3 </span><span class="Comment">" ----------------------------------------</span> <span class="lnr"> 4 </span> <span class="lnr"> 5 </span><span class="Comment">" Вкладки с файлами и статусная строка</span> <span class="lnr"> 6 </span><span class="Comment">" 0: Никогда не показывать</span> <span class="lnr"> 7 </span><span class="Comment">" 1: Показывать если больше чем 1</span> <span class="lnr"> 8 </span><span class="Comment">" 2: Всегда показывать</span> <span class="lnr"> 9 </span><span class="Statement">set</span> <span class="PreProc">showtabline</span>=1 <span class="lnr">10 </span><span class="Statement">set</span> <span class="PreProc">laststatus</span>=2 <span class="lnr">11 </span> <span class="lnr">12 </span><span class="Comment">" Команданая строка</span> <span class="lnr">13 </span><span class="Comment">" Размер высоты</span> <span class="lnr">14 </span><span class="Statement">set</span> <span class="PreProc">cmdheight</span>=1 <span class="lnr">15 </span> <span class="lnr">16 </span><span class="Comment">" Номерация строк</span> <span class="lnr">17 </span><span class="Statement">set</span> <span class="PreProc">number</span> <span class="lnr">18 </span> <span class="lnr">19 </span><span class="Comment">" Количество символов в номерации строк</span> <span class="lnr">20 </span><span class="Statement">set</span> <span class="PreProc">numberwidth</span>=4 <span class="lnr">21 </span> <span class="lnr">22 </span><span class="Comment">" Отображение имени буфера в заголовке терминала</span> <span class="lnr">23 </span><span class="Statement">set</span> <span class="PreProc">title</span> <span class="lnr">24 </span> <span class="lnr">25 </span><span class="Comment">" Запрет переноса строк</span> <span class="lnr">26 </span><span class="Statement">set</span> <span class="PreProc">nowrap</span> <span class="lnr">27 </span> <span class="lnr">28 </span><span class="Comment">" Отступы сверху и снизу при скролле</span> <span class="lnr">29 </span><span class="Statement">set</span> <span class="PreProc">scrolloff</span>=10 <span class="lnr">30 </span> </pre> </body> </html> |
Цитата:
а чем плохи F-клавиши? Просто их действительно мало кто использует, но они вроде как и созданы для пользовательских функций (тем более на маке) Я на макбуке переназначил F-клавиши (теперь у меня пользовательские функции без Fn), удалил все стандартные опции с F10-12 и вроде как удобно. Кстати сказать Mission Control гораздо удобней использовать на CTRL + "стрелочка вверх", а активную прогу на CTRL + "стрелочка вниз". Взаимодействовать с рабочими столами удобнее: влево, вправо, вверх и вниз ) |
F1 volume -
F2 volume + F3 mute F4 edit file F5 copy file/reload page F6 move file F7 create dir F8 home dir (del убрал за ненужностью, delete - del file) F9 rename file/dir 10, 11, 12 Macros-ы, Remap и т.д. |
Цитата:
У меня функциональные клавиши разделены на две группы: первая - системные опции (яркость монитора, громкость звука, переключение медиа треков и т.п), они доступны из любой программы и вторая индивидуальные опции конкретной программы (например переводчик гугл на F2 в firefox) Если раньше чтобы обновить страничку в браузере нажимал F5, то сейчас cmd + R . Chrome в mac os, кстати вообще не работает с функциональными клавишами почему-то |
Цитата:
Есть еще разные клавиши, а ля ⌘ - принудительное закрытие окна(без диалогов о не сохраненных файлах), левый alt переключение между окнами и правый ctrl переключение языка ... Яркость монитора я не регулирую, треки не переключаю кнопками. Другие сокращения доступны внутри программ, писать их нет смысла. Клава у меня нестандартная, так что некоторые биндинги подойдут не всем ;) |
Цитата:
|
Редактировал файл и обнаружил вот такую штуку:
![]() подсветка синтаксиса сбилась из-за "<". Вероятно vim ждет закрывающей скобки. Ошибка возникает когда просматриваешь файл снизу вверх. Должно быть так: ![]() В конфиге поправил: set showmatch imap [ []<left> imap ( ()<left> "imap < <><left> imap { {}<left> не помогло( Как это можно исправить? |
Цитата:
Цитата:
" Syntax highlight syntax enable filetype plugin indent on colorscheme slate set t_Co=256 set matchpairs+=<:> ![]() Если нужно что-то больше, то: https://github.com/pangloss/vim-javascript https://github.com/int3/vim-taglist-plus https://github.com/Chiel92/vim-autoformat https://github.com/hallettj/jslint.vim http://www.vim.org/scripts/script.php?script_id=1491 |
Цитата:
Судя по всему vim не выдержал большого объема кода в html файле. Или конфликт в плагине (тот что первый в твоей ссылке), он там еще за js в html-файлах отвечает, а у меня для этих целей установлен https://github.com/othree/html5.vim .. возможно конфликты https://github.com/int3/vim-taglist-plus нужная штука! Получилось поставить? У меня ошибки вылезают при вызове :TlistToggle сам плагин и jsctags установил поставил успешно. Вероятно нужна инициализация проекта или что-то вроде этого |
Цитата:
|
Часовой пояс GMT +3, время: 16:51. |