Коллекции загружаются
К моему же собственному удивлению, пристрастился к виму. Оказывается, это офигенно удобно, когда не нужно убирать пальцы с букв (на del, backspace, клавиши курсора, etc). Удобно-удобно-удобно… А потом бац — натыкаешься на какую-нибудь фигню, в которой вим до жути дубовый и неудобный. Например, на то, как он делает вставку. И всё, хочется залепить кулаком в экран. И уж точно времени тратится куда больше, чем если бы я это же делал в каком-нибудь другом редакторе.
#IT #Лытдыбр 25 января 2020
4 |
А что не так со вставкой?
|
Вот кстати, меня до кровавых мальчиков в глазах бесит автозакрытие всяких кавычек и скобок. Я с незапамятных времен привык делать это вручную. Открыл скобку, закрыл скобку, сдвинул курсор влево и пишу, что мне надо. И вряд ли отучусь от такого поведения. Но нет, в любом и каждом современном редакторе если ты открыл кавычку или скобку, то редактор тут же автоматически пропечатает закрытие. Бесит. Я ненавижу, когда прога пытается быть умнее меня и делает то, что по её мнению я собираюсь сделать. Так вот вим очень во многих моментах пытается быть таким умным. Ставлю я энтер посреди строки на конце слова. Следующая строка должна начинаться с пробела, потому что я перед этим самым пробелом воткнул энтер. Но нет, этот пробел волшебным образом исчезает. Предыдущая строка заканчивается не-пробелом, следующая строка начинается с не-пробела. В принципе, конкретно именно эта функция мне понравилась, удобно, но бляха-муха, примерно то же самое происходит, когда я какое-то слово удаляю. Обязательно исчезнет или лишний пробел, или лишний знак препинания. И вот тут уже это мешает.
Показать полностью
И это всё не считая проблем вима с русским языком. В смысле, что командный режим не дружит с русским, и бороться с этим приходится костылями. Лучше всего вим работает, когда ты редактируешь английский текст (исходники, например). |
Wave, p/P вставляет содержимое после/до курсора соответственно. Содержимое может быть 3 типов: символы, строка и блок. Т.е. что туда положишь, то (и так) и вставится.
Если символы — будут вставлены в текущую строку после/до курсора. Если строки — будут вставлены после/до строки, на которой стоит курсор. Чтобы было яснее, представь, что в буфере нет никаких \r\n, там только символы, но сами записи буфера помечены одним из трёх флагов: символы, строка, блок. Исходя из этих флагов содержимое и будет вставлено. 1 |
Так... Ладно. Кое-что понял.
|
Хотя... Как установить признак строки или блока, или символа для буфера? Завтра с компа (я щас с тапка) гляну, конечно, но...
|
Wave, только во время выделения: v/V/Ctrl+V — соответственно символы/строки/блоки.
Автозакрытие скобочек — это у тебя AutoPair плагин, наверное, да? Я им не пользуюсь, но выключить его можно так (добавь в .vimrc): let g:AutoPair = {} Ну или Alt+p должен включать/выключать. |
Про указание количества команд я знаю. Обычно - неудобно, потому что нужно остановиться и сосчитать, какое число нужно ставить. Вместо того, чтобы на спинно-мозговых рефлексах пальцами тарабанить.
|
v/V/Ctrl+V
А удалённое? Которое же тоже оказывается в буфере. |
Про автозакрытие скобок я в общем пожаловался, как самый распространенный пример искусственного интеллекта в текстовых редакторах.
|
Буду я, наверное, спать. 45 минут назад собирался. Слишком медленно на тапке печатаю.
Спасибо за справку. 1 |
Wave
Прр указание количества команд я знаю. Обычно - неудобно, потому что нужно остановиться и сосчитать, какое число нужно ставить. Вместо того, чтобы на спинно-мозговых рефлексах пальцами тарабанить. Тогда используй V — визуальное выделение строк. Потом или y (скопировать) или x (вырезать) или d (удалить).Чтобы удалить без копирования в буфер используй blackhole register: "_d Можешь замаппить d на "_d, чтобы она реально удаляла, но тогда привыкай использовать V+x для вырезания строк :) |
Wave
Ты случайно не знаешь, что можно сделать вот с такой хернёй? Вим всегда ставит конец файла на пустой строке. Т.е. последняя строка, перевод строки, окончание файла. И даже если открыт файл, где у последней строки нет перевода, а она заканчивается окончанием файла, после сохранения будет не «строка[eof]», а «строка\r\n[eof]». Ты же знаешь, зачем это делается (не считая того, что это POSIX стандарт)? Если ты файл закоммитил, а потом что-то добавил в конец, то в диффе эта последняя строка не будет помечена, как изменённая (до изменения не было перевода строка, а после добавился).Если хочешь выключить это, то в конфиг добавляешь: set nofixendofline Или, если вим старый:set noeol |
Решение проблемы с маркерами:
set enc=utf-8 set encoding=utf-8 nobomb |
Wave
TortoiseGit, Araxis Merge — а нормально они себя ведут, отображают всю разницу и всё такое. Да, но они же отображают эту строку, которая была без \n в конце, как изменённую, да? |
Да. Специально в первой ревизии последнюю строку сделал без \n на конце, а в следующей дописал к этой строке чего-то. И норм, показали, что одна строка изменилась, всё такое.
|
Неее, в следующей ревизии добавь новую строку :)
|
И получишь вот такое:
|
А если бы в последней строке был перенос, то при добавлении новой строки было бы так:
|
Wave, ага, это уже сами инструменты выпендриваются, а внутри там именно так, как я говорил. Видишь, Lines removed: 1, Lines added: 2.
Если будешь смотреть на гитхабе, например, там будет показывать, как на моем первом скрине. |
Вообще-то логично, ремувед вторая линия и добавлена такая же, но с добавлением \r\n на конце и ещё добавлена третья линия.
|
На удивление долго не мог понять, какого хрена ЕЩЁ мне мешает. Пока не наткнулся на топик. О, точно! Очень раздражает (причём, понять не мог, что именно) вот это поведение, когда при выходе из режима редактирования курсор сдвигается на символ влево. И из-за этого же «как-то странно и багнуто» работают макросы типа этого:
Показать полностью
imap <C-Del> <Esc>dea Да, конкретно это оказалось несложно поправить:imap <C-Del> <Esc>ldei (глючит, если курсор в начале или конце строки) но сам факт такого вот сдвига каретки раздражает: «ну нафига?».И ещё размышляю, как научиться выходить из режима редактирования не по эскейпу. Т.е. на самом деле у меня два варианта: переопределить капс лок на эскейп или на контрол. С контролом вообще — удобней, но конкретно для вима не очень, потому что никак не придумаю устраивающую меня комбинацию выхода в нормальный режим без эскейпа. Плюс много с чем надо разобраться, например, какая разница между разными вариантами *map (imap inoremap и т.п.). Ещё раздражает такой баг, что клавиши с F1 по F5 вместо своих значений шлют какую-то дичь. Ещё чёрт знает когда создал соответствующий issue на гитхабе неовима, его пометили как дубликат ещё более раннего issue, а исправления всё не видать. А я очень давно привык по F2 сохранять файл. Ну и так далее. Офигенно удобная фишка с неубиранием пальцев с букв, но куча мелких дубовых шероховатостей, либо под которые нужно изогнуть свои пальцы, либо на каждую подобную фишку сделать соответствующий макрос, найти плагин или ещё что, чтобы исправить под привычное поведение. Вот нахрена при возврате из редактирования сдвигать каретку влево? |
но сам факт такого вот сдвига каретки раздражает: «ну нафига?» Там в первом же ответе объясняется :)И ещё размышляю, как научиться выходить из режима редактирования не по эскейпу. Не советую, могут поломаться (и обязательно поломаются) плагины.какая разница между разными вариантами *map (imap inoremap и т.п.) На самом деле всё довольно просто::map ... — назначает :map — показывает :unmap ... — удаляет :mapclear — удаляет всё Все остальные префиксы и суффиксы — это определения режимов, на которые назначается комбинация, и метод работы: Префикс nore — запрещает рекурсивный вызов. Например: :imap C ABC Префиксы n, i, v, x, c, s, o определяют режимы, в которых будут работать комбинации:По нажатию C сначала вставится AB, затем попробуется вставится C, которое на самом деле ABC, и т.д. В итоге уйдет в бесконечную рекурсию (прервать можно по Ctrl+C). :inoremap C ABC По нажатию C вставится ABC. n — Normal mode Есть ещё суффикс ! — он определяет "Insert and Command-line mode".i — Insert and Replace mode v — Visual and Select mode x — Visual mode s — Select mode c — Command-line mode o — Operator pending mode Без префиксов и суффикса (:map) — аналог "nvo" (normal, visual, select, operator pending). |
А я очень давно привык по F2 сохранять файл. А что не так?:noremap <F2> :w!<Enter> У меня работает :) |
Styx
А что не так? Буду не с тапка - дам ссылку на issue. "у меня работает, значит остальные ламеры" - не надо так. У тебя консольный неовим под винду?У меня работает :) Про nore - спасибо. Про режимы было понятно, а вот это... там в первом же ответе объясняется Первый же ответ на первый же ответ выражает и моё недовольство тоже. Если пользоваться не i, а а, то курсор тоже сдвигается, просто в другую сторону. И так, и так он дергается и не всегда предсказуемо для спинно-мозговых рефлексов себя ведёт. Нужно внимание и всё такое. Лишний раз перешёл в редактирование и вернулся - и вот курсор у тебя уже не там, где ожидалось. Причём, в других редакторах не то что таких проблем нет, они вообще непредставимы. Не советую, могут поломаться (и обязательно поломаются) плагины. Это почему это? Чем дополнительный хоткей помешает кому бы то ни было? |
Wave
Показать полностью
Буду не с тапка - дам ссылку на issue. "у меня работает, значит остальные ламеры" - не надо так. У тебя консольный неовим под винду? Тьфу, сорри, я забыл, что у тебя не линукс/юникс. Скинь ссылку, интересно, что там такое.Это почему это? Чем дополнительный хоткей помешает кому бы то ни было? Опять «тьфу» :) Я подумал, что ты хочешь переопределить ESC на что-то другое :)Лишний раз перешёл в редактирование и вернулся - и вот курсор у тебя уже не там, где ожидалось. Причём, в других редакторах не то что таких проблем нет, они вообще непредставимы. Другие редакторы не имеют разных режимов, они всегда в insert/replace режиме, поэтому и проблем таких нет. В vim это проявляется только при переходе из insert/replace в normal, и выглядит так только потому что в insert/replace курсор на самом деле не «квадратик на символах», а «черточка между символами», но в консоли это не отобразишь, поэтому и показывается квадратик. А при выходе из режима нужно снова показывать «квадратик на символах» и вот тут и возникает затык: на какой символ ставить квадратик — справа или слева от «черточки»? Справа не всегда можно, ибо может быть конец строки. Слева тоже не всегда можно, ибо может быть начало строки. Но вероятность, что ты выйдешь из режима редактирования в конце строки — выше, поэтому и было принято решение ставить курсор на «символ слева от черточки». Как-то так. |
Нашел твой issue, ты уже пробовал вот этот совет?
|
Styx
Показать полностью
Опять «тьфу» :) Я подумал, что ты хочешь переопределить ESC на что-то другое :) Не, мне тупо нужно чтобы не тянуться по сто раз мизинцем к эскейпу. В обычной работе за компом ничо, а вот в виме очень неудобно, но нужно сверхчасто. Можно погуглить, насколько это актуальный запрос. Я себе даже несколько фишек подцепил, например, возвращение в нормал мод по неактивности. Другие редакторы не имеют разных режимов, они всегда в insert/replace режиме, поэтому и проблем таких нет. Кэп, ты ли это? В vim это проявляется только при переходе из insert/replace в normal, и выглядит так только потому что в insert/replace курсор на самом деле не «квадратик на символах», а «черточка между символами», но в консоли это не отобразишь, поэтому и показывается квадратик. А при выходе из режима нужно снова показывать «квадратик на символах» и вот тут и возникает затык: на какой символ ставить квадратик — справа или слева от «черточки»? Справа не всегда можно, ибо может быть конец строки. Слева тоже не всегда можно, ибо может быть начало строки. Но вероятность, что ты выйдешь из режима редактирования в конце строки — выше, поэтому и было принято решение ставить курсор на «символ слева от черточки». Как-то так. В целом, понятна причина, но с моей колокольни это выглядит неудобно, изначально было сделано костыльно, а теперь приходится тащить бремя legacy. Причём, блин, до вима я 99% пользовался редактором фара, потому что я вообще не представляю себе винду без фара. Никакие тотал коммандеры мне его не заменят. А у фара есть такая фишка, что он консольный. И его редактор консольный. И таких проблем в нём нет. (потому мне и нужен именно консольный вим, что я указал его как внешний редактор фара, и он, соответственно, встал там как родной. Полная и удобная иллюзия нативности) |
Styx
Нашел твой issue, ты уже пробовал вот этот совет? Это не то исью, своё я делал осенью, и его пометили как дубликат гораздо более давнего xDА, хех, ага, а этот тоже пометили, как дубликат, но дубликат другого. И тот другой закрыт два дня назад. Ладно будем посмотреть, как пятёрка релизнется. Я пока на релизе четвёрки (4.3). Или, может, бэкпортируют. А тот совет я не пробовал. Я его, если честно, даже не понимаю. Мне проще дождаться исправления в релизе. |
я вообще не представляю себе винду без фара. Никакие тотал коммандеры мне его не заменят Наш человек! После nc — только far :) |
У меня был волков коммандер.
|
Wave, хм, не знаю, никаких хитрых штук с маппингом <BS> нет. Как именно ты маппишь? Вообще, можно же юзать Ctrl+w — это стандартная комбинация для удаления предыдущего слова.
|
Вообще, можно же юзать Ctrl+w — это стандартная комбинация для удаления предыдущего слова. Не знал. Прост по другим редакторам привык к Ctrl+Del, Ctrl+BS, Ctrl+Left(Right), а в режиме редактирования не работает w b dw db, вот я и пробовал сделать привычные штуки.В общем, кусок моего конфига: " Так работает На самом деле с копированием-вставкой этот кусок конфига недоделанный и уже заброшенный. Я пользуюсь ConEmu, а оно ведёт себя немного не так, как cmd. И тут щас на другом ноуте есть отличия от того, что уже было. Буду ещё экспериментировать. Но с бекспейсом не работало ни на предыдущем, ни на этом ноуте.imap <C-z> <Esc>u " без этого nvim переходит в какой-то странный режим и я не могу его оттуда достать nmap <C-z> u nmap <C-a> <Esc>ggVG imap <C-a> <Esc>ggVG imap <C-c> <Esc>"*y nmap <C-c> <Esc>"*y vmap <C-c> "*y imap <C-v> <Esc>"*p nmap <C-v> "*p imap <A-v> <C-v> nmap <A-v> <C-v> imap <C-v> <Esc>"*p " а вот здесь какая-то проблема — вставляет в поле команд Примечание для блога: уже не помню, что имелось в виду. Да, была какая-то фигня с вставкой текста из буфера обмена в командный режим, но явно как-то не так. " nmap <C-v> "*p " Так работает imap <C-Del> <Esc>ldei " imap <C-Del> <Esc>dea " предыдущий вариант " а так нет " imap <C-BS> <Esc>dbi " и так нет " imap <C><BS> <Esc>dbi " и даже так (пробовал для эксперимента) " inoremap <BS> <Esc>dbi С бекспейсом что получается — что бекспейс, что контрл-бекспейс в режиме вставки несмотря на вон те попытки выше (и без них тоже) удаляет одну предыдущую букву, и всё. noremap! <C-BS> <C-w> Тоже не работает, удаляет одну предыдущую букву и всё. Кстати, что означает <C-h> — контрол плюс аш?noremap! <C-h> <C-w> И ещё, про бекспейс я пробовал и в конэму, и в цмд. Во-первых, по-умолчанию оно будет удалять только слова вставленные после последнего перехода в insert-режим И даже это не сработало, хотя когда я эту фразу прочитал, подумал, что дело именно в этом (и если бы это оказалось так, то это меня взбесило бы — очередное неуместное проявление искусственного интеллекта там, где его быть не должно).И да, бекспейс в нормальном режиме делит окно вима пополам и дублирует в него текущий редактируемый файл. И вроде бы это не из-за моих экспериментов. Я себе конфиг вообще-то сделал такого вида: source $VIM/config/encoding.vim И пока ещё в нём можно ориентироваться :-)source $VIM/config/plugins.vim source $VIM/config/keybinding.vim source $VIM/config/statusbar.vim source $VIM/config/windows.vim source $VIM/config/config.vim |
Wave
Кстати, что означает воскл знак после noremap? Это значит, что комбинация будет действовать в Insert и Command-Line режимах.И что означает <C-h> — контрол плюс аш? А это и есть бэкспейс — удаление символа слева от курсора.Проблема в вима с <C-BS>, увы. У меня тоже не получилось забиндить, он тупо не видит разницу между BS и C-BS. Можешь попробовать: :inoremap <BS> ABC Он будет вставлять ABC и по нажатию BS и по нажатию C-BS. Ctrl+h работать не перестанет. |
Wave
Такой вопрос: на что ты себе намапил клавишу лидер? Оно вроде бы как удобней всего на пробел её мапить, и очень часто так и советуют делать, но вместе с тем бывают и… Короче, та же фигня, почему ты мне не советовал переопределять эскейп. Как раз лидер можешь переназначать как тебе угодно. Плагины (и ты сам тоже должен так делать) маппят не на конкретную клавишу, а на <Leader>, т.е. если ты её изменишь (в конфиге), то все плагиновские шорткаты будут работать уже с новой клавишей. |
Это значит, что комбинация будет действовать в Insert и Command-Line режимах. Я это углядел, отредактировал коммент, убрав вопрос, но ты уже ответил :)Он будет вставлять ABC и по нажатию BS и по нажатию C-BS. Ctrl+h работать не перестанет. Да нет же. Он у меня почему-то всё равно, как я ни извращаюсь, в режиме вставки любой комбинацией бэкспейса или чистым бэкспейсом удаляет символ слева, если не на начале строки, а в нормальном режиме делит экран пополам (и ещё раз пополам, и ещё).Как раз лидер можешь переназначать как тебе угодно. Плагины (и ты сам тоже должен так делать) маппят не на конкретную клавишу, а на <Leader>, т.е. если ты её изменишь (в конфиге), то все плагиновские шорткаты будут работать уже с новой клавишей. Я не о том. Я знаю, что лидер может быть любым, просто если ставить его на пробел, то получается слишком много мелких неудобностей, потому что пробел сам по себе задействован несколько чаще остальных клавиш. Вот та штука, которую ты в следующем комменте описываешь, вылазит. Поэтому и интересуюсь, может, кто-то что-то более удобное предложит. Второй по частоте совет ставить лидер на запятую. И вот это оказывается охрененно неудобно. Во-первых, по ней я тоже, бывает, промахиваюсь. Как и по квадратным скобкам и цифрам в верхнем ряду. А во-вторых, всё тот же русский язык. |
Wave
Да нет же. Он у меня почему-то всё равно, как я ни извращаюсь, в режиме вставки любой комбинацией бэкспейса или чистым бэкспейсом удаляет символ слева, если не на начале строки, а в нормальном режиме делит экран пополам (и ещё раз пополам, и ещё). А вот это странно... Покажи что выведет в файлик:redir! > vim_keys.txt :silent verbose map :silent verbose map! :redir END |
Wave
Так а как замапить Home и End и главное, как в режиме редактирования прыгать на начало-конец строки? А то не прикалывает делать <Esc>A или <Esc>I особенно учитывая, что я так и не определился с тем, чем же заменить себе эскейп. Можешь пока использовать C-a и C-e — это ридлайновские Home/End (правда Home кидает в начало строки, а не текста на строке). Я попозже доберусь до компа с полноразмерной клавиатурой и посмотрю, что там у меня с Home/End.но кто ж знал (и этот нект тоже), что <C-h> это у нас <BS> Смотри, вот тут есть стандартные шорткаты readline, можешь подсматривать, чтобы случайно не переопределить :)И с копированием-вставкой я запутался конкретно. Я тоже :) В чём там проблема была? |
Если ты используешь ConEmu, то ты можешь в нём самом определить комбинацию Ctrl-BS, чтобы он посылал Ctrl+w :) Я сейчас попробовал в своём терминале, работает :)
Упд: кстати, у него уже такое есть в настройках. |
Если ты используешь ConEmu, то ты можешь в нём самом определить комбинацию Ctrl-BS, чтобы он посылал Ctrl+w :) Я сейчас попробовал в своём терминале, работает :) Не-не! В этом же самом конэму у меня работает и фар.Upd. Глянул, что там имеется в виду. Ни одно состояние 3-state переключателя не меняет поведения вот этого вот ни при наличии, ни при отсутствии noremap! <C-BS> <C-w> Если что, интерес разобраться тут у меня чисто спортивный, чтобы знать, что это нафиг такое. Так- то мне достаточно того, что есть шоткат для того, что мне нужно. Который к тому же работает и в русской раскладке. Можешь пока использовать C-a и C-e Эххъъ. Хрен редьки не слаще. На C-a у меняnmap <C-a> <Esc>ggVG imap <C-a> <Esc>ggVG А C-e прокручивает текст на строку вниз, оставляя курсор в предыдущей строке. Это, насколько помню, стандартный вимовский шоткат. Я тоже :) В чём там проблема была? Во всём разом: а) у вима есть свой буфер обмена, б) два режима вставки: с отступами и без, в) поверх этого вмешивается конэму и тоже в двух режимах (всё портить и бибикать ©). В фаре не вмешивается, а тут вмешивается.Ночью я было обрадовался, найденный плагин работает полностью так, как мне надо: if exists("g:loaded_bracketed_paste") Пофиг, что я это почти не понимаю. Пофиг что шоткат Ctrl+Shift+V — привыкну. А вот сейчас сижу экспериментирую, и опять вылазят траблы. Во-первых, в русской раскладке не работает. Во-вторых, опять хрен знает где вставляет: может со следующей строчки, а может в позицию после курсора (p — на символ дальше).finish endif let g:loaded_bracketed_paste = 1 let &t_ti .= "\<Esc>[?2004h" let &t_te = "\e[?2004l" . &t_te function! XTermPasteBegin(ret) set pastetoggle=<f29> set paste return a:ret endfunction execute "set <f28>=\<Esc>[200~" execute "set <f29>=\<Esc>[201~" map <expr> <f28> XTermPasteBegin("i") imap <expr> <f28> XTermPasteBegin("") vmap <expr> <f28> XTermPasteBegin("c") cmap <f28> <nop> cmap <f29> <nop> Вот это меня бесит неимоверно. Я вижу, где стоит курсор. Я говорю редактору что-то сделать, например, вставить текст из буфера обмена. А он берёт и делает это на символ дальше от курсора. И да, ты уже объяснял, но всё равно это нахрен неудобно. Возможно, пока что, пока не искривлю свои пальцы под вим. |
Wave
Вот это меня бесит неимоверно. Я вижу, где стоит курсор. Я говорю редактору что-то сделать, например, вставить текст из буфера обмена. А он берёт и делает это на символ дальше от курсора. И да, ты уже объяснял, но всё равно это нахрен неудобно. Возможно, пока что, пока не искривлю свои пальцы под вим. Стоп, про это я ничего не объяснял. Только про выход из insert-режима.Если хочешь вставлять текст в позицию курсора, то вместо p используй gP. Можешь забиндить: nnoremap p gP Только аккуратно, если пользуешься всякими xp, ddp — они поломаются с новым биндингом. |
Wave, inoremap! — такой команды нет. Есть inoremap и noremap! :)
Сделай такую штуку: нажми Ctrl+v, затем backspace, и посмотри, что получится. На «это» и забиндь C-h. |
Вообще, это глюки не конкретно vim/neovim, а конкретных реализаций readline, под которыми они работают.
|
Всё равно не получается. Вставляется <BS> и <C-BS> соответственно, а при попытке намапить в редакторе вставляется Îx и ^_
|
Ладно, нахрен, я спать. Точно уж, софт для красноглазиков.
|
Wave
бекспейс упирается в то, что было до нажатия A и останавливается намертво Я уже про это говорил::set backspace=indent,eol,start |
Wave
Всё равно не получается. Вставляется <BS> и <C-BS> соответственно, а при попытке намапить в редакторе вставляется Îx и ^_ Вот это и попробуй намаппить (через noremap!) на C-h и C-w. |
Styx
Wave Не получается. Всё равно вставляется эта же белиберда.Вот это и попробуй намаппить (через noremap!) на C-h и C-w. |
Wave, а что за белиберда-то? :)
Попробуй ещё слить все маппинги в файл, как я показывал выше, и глянь, может это что-то где-то шалит. |
В общем, поковырялся ещё, используя метод половинного деления опять. Выяснил, что в приколах с бекспейсом виновата строка set term=xterm
Показать полностью
" 256 цветов в конэму. if !has("gui_running") set term=xterm set t_Co=256 let &t_AB="\e[48;5;%dm" let &t_AF="\e[38;5;%dm" inoremap <Char-0x07F> <BS> nnoremap <Char-0x07F> <BS> endif Чисто охота нормальную цветовую схему использовать, на 256 цветов, с жирным-курсивом-подчёркиваниями и прочими подобными мелочами. Но увы, либо то, либо это. Я, конечно, ещё поковыряю документацию что одного продукта, что другого, но… Неовиму в отличие от вима в данном случае требуется только set termguicolors И, да, проблему с map <C-BS> <C-w> решить не получается никак, но вот при запуске gVim нормально работают и бекспейс, и контрол-бекспейс. Надо гуёвому виму ещё подобрать шрифт как-то, потому что тот, который по умолчанию, сильно многого не хочет нормально показывать. Например, значки у NERDTree. Упд. Еле-еле выяснил, что писать в конфиге надо так: set guifont=DejaVu_Sans_Mono:h10 (с подчёркиваниями). А ещё, что выбор шрифтов там почему-то очень бедный, и что далеко не все значки, в отличие от конэму, отображаются. Слуш, пара мелочей: Как гвим распахнуть на весь экран при запуске? Нашёл только паллиатив set columns=999 set lines=999 При указании set encoding=utf8 nobomb меню гвима стало показывать иероглифы. Я сдеал по-простому, убрал меню (и тулбар) вообще. Но это тоже паллиатив. Ну и ещё такое: при первом старте гвим говорит что-то типа «библиотеки не зарегистрированы, зарегистрировать?» — что за библиотеки и как бы этот вопрос вообще убрать? Дело в том, что в силу виртуализации после перезагрузки всё возвращается на круги своя и эти библиотеки вновь незарегистрированы. |
Wave
Как гвим распахнуть на весь экран при запуске? Нашёл только паллиатив Ну это и есть обычный способ для вима :)set columns=999 set lines=999 При указании set encoding=utf8 nobomb меню гвима стало показывать иероглифы. Я сдеал по-простому, убрал меню (и тулбар) вообще. Но это тоже паллиатив. Должно быть utf-8 (с дефисом). :h encoding-namesНу и ещё такое: при первом старте гвим говорит что-то типа «библиотеки не зарегистрированы, зарегистрировать?» А покажи точный текст ошибки. |
Должно быть utf-8 (с дефисом). :h encoding-names Без этой опции, с дефисом или без, всё нормально. |
Wave
Без этой опции, с дефисом или без, всё нормально. Тогда сделай так: запусти вим без этой опции, потом запусти команду: :set encoding? Посмотришь, какая кодировка активная, и добавь её же в настройки, но с добавление "nobomb".На самом деле эта фигня означает, что один раз за сеанс винды я при запуске gvim должен лишних два раза нажать enter (или каждый раз выбирать нет). Прост слегка раздражает. Ага, понял. Сделай какой-нибудь autoexec.bat (или что там нынче) в котором пропиши:<path-to-gvim>\gvim -silent -register Чтобы он запускался каждый раз при старте винды и втихаря регистрировал что ему нужно. |
Что-то мне всё меньше нравится XP, хотя я на ней сидел, можно сказать, до последнего.
|
Wave, C-a/C-x для увеличения/уменьшения. Может случайно нажал? :)
|
Перед маппингом C-a можно сначала сделать unmap. Ну или vnoremap <C-a> добавь ещё.
|