LINUX.ORG.RU

vim selectmode

 , ,


0

3

Привет уважаемому сообществу LOR!

Давно «грызет» вопрос, который не дает покоя - обращаюсь к знатокам Вима.

Под MS-Win для выделения фрагмента текста повсеместно используется [Shift]+«Стрелки». Можно эту фичу включить и в Виме опцией «keymodel=startsel,stopsel». Или глобально при помощи «behave mswin» (не айс, ломает много настроек). Но после включения этой опции при переходе в «Визуальный режим» по [V] из «normal mode» эти самые «Стрелки» перестают управлять выделением текста (можно использовать только hjkl).

Собственно, вопрос: как оставить функционал «клавиш со стрелками» в визуальном режиме и добавить выделение с шифтом в режиме вставки?

РЕШЕНО: https://www.linux.org.ru/forum/general/12543213?cid=12543253 (комментарий)


Осенило: надо использовать «keymodel=startsel» без второй опции! Тогда в «визуальном режиме» стрелки продолжают работать как раньше. Всем спасибо.

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

ну с [Shift]+«Стрелки» ты конечно же быстрее выделишь, чем с переходом в нормал мод, в котором у тебя есть уйма возможностей выделить: vw, v$, v^, vi символ, va символ, vt символ, итд. Я уж молчу про S-v, C-v. Все это конечно не оправдывает переход в нормал мод.

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

Не смотря на твою иронию, отвечу внятно. Я много работаю в нормал мод на серверах, когда правлю конфиги. Тут вся классика Вима играет как музыка.

Но я пользуюсь вимом не только на работе. Проблемы начинаются когда начинаешь набирать НОВЫЙ текст и пытаться его одновременно корректировать, копируя и переставляя уже набранные части. Вот тут резко падает скорость процесса из-за необходимости менять режимы. Только и всего.

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

ты экономишь на спичках, по мне проще войти в нормал мод и в нем выделить/удалить/заменить чем жать шифт, тянуться к стрелкам и стомиллионов раз жмакать по ним.
btw а вот выделил ты в эдит моде текст, а дальше что жмешь? C-x/C-c, C-v?

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

Спасибо за ответы. Но вобще я обращался к экспертам, а не советчикам на тему «как мне сломать свои привычки и начать жить правильно».

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

О, ну извиняйте, что не оправдали ваших ожиданий, мистер «я хочу превратить вим в любой другой редактор, потому что я так вижу»

t1nman ()
Ответ на: комментарий от kep

Может есть другой способ (не отрезая рук) выделить часть текста в «insert mode» и, не меняя режимов, переставить его в другое место продолжая редактировать текст?

(Про «<Esc> hhhhhhhh v jjj y ... p i» я знаю, и не собираюсь обсуждать как лучше - каждый выбирает под себя.)

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

insert mode

для ввода

visual mode

для выделения

normal mode

для обработки команд.

Также есть промежуточные режимы, например C-o, который ты ищешь, при C-o в insert mode включается временный normal, где работает также visual mode. Выделяй сколько влезет, ни в чем себе не отказывай. При прекращении выделения и последующей команды, например yank, срабатывает автоматический переход обратно в insert.

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

не меняя режимов

не меняя режимов, т.е. не используя сам смысл vim'а — ты можешь работать в любых других редакторах, возможно тебе больше подойдет имакс с легкой эмуляцией vim-навигации, но не более.

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

Спасибо, Кэп. Если не трудно, то с этого места поподробнее. У меня по ":h CTRL-O" видно это:

CTRL-O			Go to [count] Older cursor position in jump list
Вероятно я не то смотрю?

bigov ()
Ответ на: комментарий от kep

ну... наверно так будет удобно прыгнуть на несколько строк/слов/страниц, согласен. Про оперативное изменение текста пока не «вкурил».

Вобще, про «i_CTRL-O» не знал. Спасибо.

bigov ()
Ответ на: комментарий от ns_ramesses

Тем, что пальцы правой руки всегда на них, в буквальном смысле.

Я понимаю тебя и других, кому это кажется странным, но поверь остальным миллионам активных пользователям вима :)

kep ()
Ответ на: комментарий от ns_ramesses

тем, что их используют очень и очень редко. только новички постоянно зависают на hjkl и не понимают чем они лучше стрелок. когда умеешь в вим, то практически всегда используешь более эффективные motion, которые сразу переводят курсор куда надо, а не отбиваешь 12 раз h.

val-amart ★★★★★ ()
Ответ на: комментарий от bigov

Всё правильно сказал!

Тем более эти советчики сами-то нифига кроме каментов на ЛОРе не пишут, судя по всему.

Есть еще прием нажать Ctrl-O это чтобы быстро «сгонять» в normal mode не нажимая Esc а потом i.

mos ★★☆☆☆ ()
Ответ на: комментарий от val-amart

удобнее использовать то, что удобнее. в данный момент.

например, не понимаю как нормально жить без имаксо-биндингов когда редактируешь. а их нема по-дефолту.

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

Не, я без троллинга, просто это же базовый функционал, который вимеры юзают регулярно, а тут находятся те, кто вообще не в курсе про это. А ещё поражают вопросы, типа таких:

Чем h, j, k, l объективно удобнее?

Я против вопрошающего ничего не имею, но те, кто задают такие вопросы, явно не редактировали текст в своей жизни, лол.

Подводя итог своего негодования, скажу, что за год на вим можно так подсесть, что по привычке уже начинаешь вне вима жать <Esc>:w<CR>i (у меня это забиндено на F5), и начинаешь материться на всякие <C-s>.

Режимы рулят и педалят, ими просто нужно научиться грамотно пользоваться.

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

А что такого? Я всего только года два как на Вим подсел пройдя этапы

  • конфиг по-умолчанию
  • классный чужой конфиг
  • ...
  • еще чужой конфиг
  • почему у меня это не работает?
  • без конфига
  • только то что надо мне

На последнем этапе пару месяцев курил маны по вечерам после работы, затачивая Инструмент_Для_Работы под себя. При этом не забываем, что Вим - это инструмент. Инструмент для решения своих (несомненно интересных) задач. Задач, за которые ты уже взялся! И не всегда есть возможность (да и желание) тратить время и силы на то, чтобы заниматься доработкой инструмента и навыков работы с ним.

Хотя всегда есть фанаты (типа Кэпа), которые коллекционируют ножи просто потому что они ОФИГЕННЫЕ и умеют бросать их лучше всех в мишень. Всегда интересно пообщаться с ними и «отпить из источника мудрости» ;-)

bigov ()
Ответ на: комментарий от r3lgar

что по привычке уже начинаешь вне вима жать <Esc>

Точно, я уже и веб-браузер запиленый под команды Вим, и просмотровщик документов такой-же юзаю.

Но сохраняю тексты по <F2> как в (куда ж без него?) «mc»

bigov ()
Ответ на: комментарий от vvviperrr

Теперь начинаю «догонять» - через временный переход в режим выделения, например скопировать в буфер два слова:

Ctrl-o v2wy

Верно?

Вот только я меня почему-то в таком режиме отмена срабатывает только через 2-3 секунды после ввода

Ctrl-o u

Не нашел пока причины.

bigov ()
Ответ на: комментарий от ns_ramesses

Как себя переучить?

постить побольше на ЛОРе конечно. обязательно с прикольной овотаркой.

вообще-то у людей смотрящих на экран а не клавиатуру всё происходит естественным образом. если ты не мутант с 20 пальцами на руках размером с лопух.

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

Верно?

верным будет такие основы изучать пользуясь инструментом, а не слушая советы васянов на лоре.

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

И не всегда есть возможность (да и желание) тратить время и силы на то, чтобы заниматься доработкой инструмента и навыков работы с ним.

На примере топора: Вот возьмём мы какого-нибудь городского жителя из мегаполиса, дадим тупой топор, и пошлём рубить лес. Во-первых он в этом ничего не соображает, а во-вторых у него негодный инструмент, в итоге мы получим невыполненную работу, да и ту с задержками, а то и с травмами. А если мы пердварительно обучим этого человека держать топор так, чтобы он себе ногу не отрубил, расскажем, что острым топором рубить быстрее и проще, то мы получим соответствующий результат, и матом он нас крыть не будет.

Так вот для этого и пишут документацию по виму. Да, изначально вим не очень удобен, но он искаропки годится для редактирования текста, пусть и не очень удобно. Но если прочитать хоть одну толковую книжку по виму (за списком книг обращаться к Кэпу), и один раз настроить редактор, то не только производительность возрастёт, но и удовольствие от работы можно получить, а не БОЛЬ.

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

не нравятся h, j, k, l

То есть тебе нравится постоянно переносить руку хрен знает куда для навигации? Ты просто впустую тратишь время на перемещение руки по клавиатуре. Я не говорю, что это плохо, это удобно для тебя, и на привыкание нужно время, но я тебе говорю как тот, кто ещё год назад не переваривал эти hjkl, и юзал стрелки, но hjkl того стоит.

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

сохраняю тексты по <F2>

А я как-то в самом начале, когда чей-то конфиг юзал, как привык к <F5> == :w, <F6> == :e, так до сих пор его и юзаю, и только недавно обнаружил, что это геймерские квиксейв/квиклоуд, лол.

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

<F5> == :w, <F6> == :e, так до сих пор его и юзаю, и только недавно обнаружил, что это геймерские квиксейв/квиклоуд

чтоу? как геймер, заявляю, что F6 и F9

в виме вообще F* не использую - слишком далеко

<Leader>w для сохранения через :update; :e без аргументов нечасто нужен

MyTrooName ★★★★★ ()
Последнее исправление: MyTrooName (всего исправлений: 1)
Ответ на: комментарий от MyTrooName

не придирайтесь, гражданин. В разных играх по-разному :-)

bigov ()
Ответ на: комментарий от r3lgar

Красиво излагаешь, образно! Полностью согласен. Один ньюанс хочу добавить: у городского жителя есть центральное отопление, горячая вода... (в смысле MS-Visual[xxx], Нетбинс, на худой конец Dev-CPP). Чтоб помыться, воду греть не надо.

Но вот купили дачу. Приехали, а там... жопа короче. В сарае тупой топор, ржавая пила, а жена просится в баньку...

Вот и бежишь к соседу первое время - за топориком (чужой конфиг), потом за точилом... ну и так далее.

Я про что - время на все требуется. Самый ценный ресурс.

bigov ()
Ответ на: комментарий от vvviperrr

благодарствуем, будем покурить.

Только где-ж ты видел в мане про текстовые объекты? Там только ключи запуска и общая информация. А про что ты имеешь ввиду - так это все во встроенной справке. Точнее мысли излагайте, товарищ.

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

госпаде, ты такой наивный? вимовский хелп в помощь

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

<Leader>w для сохранения

да, удобно, особенно если

map       <Space>      <Leader>
рекомендую попробовать, особенно сохранять. Довольно приятный жест.

kep ()
Ответ на: комментарий от bigov

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

Я про что - время на все требуется. Самый ценный ресурс.

На ненастроенном инструменте ты потратишь куда больше времени, чем на настройку инструмента единоразово, с небольшой шлифовкой раз в пару месяцев. Да, ты потратишь десятки часов на настройку, но в течение жизни в виме ты на секундах, потраченных зря, потратишь куда больше, пусть и не сразу. Я за дальновидность, в общем.

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

в виме вообще F* не использую - слишком далеко

Так у меня это юзается только перед выходом — F5(:w) → F4(:qa!). В остальных случаях я просто привык к Esc,:w.

:e без аргументов нечасто нужен

Но иногда таки бывает нужен. Редко.

чтоу? как геймер, заявляю, что F6 и F9

Дэ? Ну, я не геймер. У меня всего три игры: гента, вим и осом.

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

[внезапно] нашел еще лучший вариант сохранения с выходом: ZZ

Внезапно, ага. А когда нужно выйти без сохранения? У меня обычно такое случается, когда надо сохранить один буффер, а остальные (временные) затереть. Что-то задолбаешься ты все закрывать по одному так, а если будешь юзать какой-нибудь startify, то незакрытые временные буфферы выдают ошибку при старте или лишние закрытые файлы потом приходится в сессии заново открывать.

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

тебе НЕ нужен вим если ты постоянно думаешь «как бы всё делать и не вылезать из inset mode»

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