LINUX.ORG.RU

Навигация по длинным строкам в vim

 


0

2

Решил сделать в vim нормальную навигацию по тексту при включенном wrap-е длинных строк. Сделал это как-то так:

noremap  <down> gj
inoremap <down> <C-o>gj
noremap  <up>   gk
inoremap <up>   <C-o>gk
noremap  <home> g^
inoremap <home> <C-o>g^
noremap  <end>  g$
inoremap <end>  <C-o>g$
В итоге в airline при использовани стрелок вверх/вниз постоянно мигает индикатор режимов INSERT/NORMAL.

Существует ли workaround, чтобы избежать такого мигания кроме как «не показывать индикатор/не использовать airline»?

vim

<down> <up> <home> <end>

перемещение в insert mode

Говноед.

anonymous
()

Существует ли workaround, чтобы избежать такого мигания кроме как «не показывать индикатор/не использовать airline»?

Да, осуществлять навигацию в режиме normal.

andreyu ★★★★★
()

Навигация в режиме вставки не нужна. А если нужна, то смени редактор на однорежимный.

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

Пока не осилишь режимы и hjkl — у тебя везде будет «удобство уровня эмулятора печатной машинки».

anonymous
()

Пагни выше всё правильно говорят, тяжело себе представить — для чего и с какой целью нужна навигация в insert mode.

Так а вопрос, собственно, по airline что-ли? Workaround не существует, нужно патчить коре.

redhat
()

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

Это не беспочвенные наезды или старая добрая ультраортодоксальность, реально удобным, быстрым и эффективным инструментом Vim становится только тогда, когда используется по назначению и правильно.

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

Это получается «удобство уроня emacs».

Навигация в режиме вставки в vi противоречит его идеологии. Если так необходимо перемещаться в режиме вставки, то стоит перейти на емакс - там это норма.

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

Я никогда не поверю что для исправлении очепятки гораздо проще перейти в командный режим и hjkl (лол, хоть аналогично wasd сделали, какая логика в одну строку то располагать, чтоб пользователь заучивал какая кнопка за что отвечает?) на пару букв назад, потом перейти в режим замены, заменить одну букву, потом Shift+A какой-нибудь и только тогда печатать дальше. Может когда стрелок на клавиатурах небыло это все было и удобно (ну просто иначе никак нельзя было), но сейчас это как матричный принтер использовать или текстовички на дискетах таскать - да, трушно\олдскульно, но зачем?

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

andreyu

Какое «правильно», какая идеология? <ESC>h/j/k/l удобнее, чем <Up><Down><Left><Right>? Меньше нажатий клавиш, быстрее, что? Есть вообще какие-либо рациональные доводы использовать первый вариант, если никто не запрещает редактировать .vimrc, а на клавиатуре имеются рабочие курсорные клавиши?

Если вим не позволяет без извратов нормально перемещаться по строкам, то это недостаток вима, недоработка, и если уж делаете из этого религию, то хоть нормальным людям голову не морочьте. По крайней мере, пока нет нормального форка vim, который этого недостатка не имеет, зато умеет отображать кусок длинной строки, а не вытаскивает её на экран целиком.

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

Какое «правильно», какая идеология?

Идеология редактора vi.

<ESC>h/j/k/l удобнее, чем <Up><Down><Left><Right>?

Да, удобнее. Если вы этого не желаете понять, то зачем вам vi?

Меньше нажатий клавиш, быстрее, что?

Меньше ерзаний ладоней по клавиатуре. Где у вас кнопки управления курсором расположены?
Может слепая печать для вас чужда? Тогда вам и vi не нужен - есть emacs - он вас ждет.

Есть вообще какие-либо рациональные доводы использовать первый вариант, если никто не запрещает редактировать .vimrc, а на клавиатуре имеются рабочие курсорные клавиши?

Просто ответьте себе на вопрос - зачем вам vi?

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

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

мало кто из правильно использующих вим поверит в это, я в том числе, потому что hjkl никуда не годится, ну разве что кроме как отступить на символ вперед/назад, а для навигации по строкам есть: начало строки, середина строки, конец строки.

Сколько строк выше? Сколько начал слов/концов слов вперед/назад? Поиск по f, F, t, T и так далее.

Если мы сейчас начнём считать затраченное к-во символов на правильное исправление и стрелочный тупняк, то в 99.5% случаев выйдет, что правильная навигация в normal mode эффективнее всяких костылей-костыликов в insert mode.

Так было всегда, так есть и будет всегда.

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

Меньше нажатий клавиш

Верно, не только меньше нажатий клавиш, но и удобство нажатий.

Именно это и называется эффективностью и комфортом.

см. выше:

Если мы сейчас начнём считать затраченное к-во символов на правильное исправление и стрелочный тупняк, то в 99.5% случаев выйдет, что правильная навигация в normal mode эффективнее всяких костылей-костыликов в insert mode.

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

но зачем?

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

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

для чего и с какой целью нужна навигация в insert mode

Внезапно, навигация нужна для правки текста.

Так а вопрос, собственно, по airline что-ли?

Может в insert-mode есть что-то кроме C-o gk, чтобы передвигаться на строчку вниз?

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

какая идеология?

Модальность.

<ESC>h/j/k/l удобнее, чем <Up><Down><Left><Right>?

Да, особенно, если повесить ESC на Caps Lock.

Меньше нажатий клавиш

Зависит от ситуации.

быстрее, что?

hjkl — как и другие клавиши перемещения — A, f/F, g/G — расположены на home row, где руки расположены по умолчанию.

И да, f/F, w/W и ко., //? быстрее любых односимвольных скакалок, см. http://vimcasts.org/blog/2013/02/habit-breaking-habit-making/.

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

Меньше ерзаний ладоней по клавиатуре

ORLY? Напомни-ка мне, как в ванильном виме переходят в normal mode из insert mode, и какие звуки издает редактор, если ты уже находился в normal mode?

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

Да, особенно, если повесить ESC на Caps Lock.

Повесь смену раскладки на Caps Lock, а для вима лови такую секретку:

inoremap jj <Esc>
Это, конечно, при условии, что ты не любишь называть свои переменные «jj».

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

В insert mode для перехода на следующую строку есть Enter.

что-то кроме C-o gk, чтобы передвигаться на строчку вниз?

Ну вот же, о чем мы и говорим: считаем, Control + o + g + k это 4 нажатия, а Esc + j + i — это эффективнее на 25%, лол!

Если запара в длинных строках, то все себе давно уже замапили:

map j gj
map k gk

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

Напомни-ка мне, как в ванильном виме переходят в normal mode из insert mode

R, i, I, o, O, a, A, s, S, gi, gI, c<motion>, C.

какие звуки издает редактор, если ты уже находился в normal mode?

Для этого нужно специально включать бибикалку иксов через xset +b, не?

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

inoremap jj <Esc>

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

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

> в normal mode из insert mode

R, i, I, o, O, a, A, s, S, gi, gI, c<motion>, C.

Это я попутал, да.

ESC, не?

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

ORLY?

Да, можете проверить.

Напомни-ка мне, как в ванильном виме переходят в normal mode из insert mode,

Нажатием escape или иным хоткеем, хоть jk.

и какие звуки издает редактор, если ты уже находился в normal mode?

У меня никаких. И мне незачем находясь в нормальном режиме переходить в нормальный режим. Ума не приложу, кому вообще это может понадобиться.

В любом случае для вас есть куча других редакторов.

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

С чего вы взяли, что пользователи вима будут вас уговаривать использовать инструмент, который чужд вашему пониманию?

Да я и не прошу меня уговаривать (хотя, конечно, можно аргументировать а не «иначе не тру, вендузятник»). Только ты сам же первый пишешь:

Навигация в режиме вставки в vi противоречит его идеологии. Если так необходимо перемещаться в режиме вставки, то стоит перейти на емакс - там это норма.

То что у меня навигация стрелочками в режиме вставки оскорбляет чувства всех трушных пользователей vim? Мне нужно менять редактор из-за того что кто-то там думает что я не прав? Просто если vim так не умеет - скажи прямо, не надо какие-то идеологии приплетать. Если ты знаешь путь лучше - расскажи и аргументируй. А то так все молодцы кричать «то - тру, это - не тру» и «ты делаешь не правильно, делай так ПОТОМУ ЧТО ТАК НАДА!».

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

То что у меня навигация стрелочками в режиме вставки оскорбляет чувства всех трушных пользователей vim?

Походу это только вас оскорбляет. Мне совершенно фиоллетово, в какой позе вы дрочите.

Мне нужно менять редактор из-за того что кто-то там думает что я не прав?

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

Просто если vim так не умеет - скажи прямо, не надо какие-то идеологии приплетать.

Вы тупой? Тогда прочтите еще раз этот тред, тут все уже сказано.

Если ты знаешь путь лучше - расскажи и аргументируй.

Уже сказал выше.

А то так все молодцы кричать «то - тру, это - не тру» и «ты делаешь не правильно, делай так ПОТОМУ ЧТО ТАК НАДА!».

Делайте так, как вам угодно. С чего вы решили, что ваш «единственно правильный» способ дрочки интересно обсуждать окружающим?

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

Добрый господин, если вы действительно хотите понять почему некоторые люди используют вим то посмотрите данное годное видео на эту тему, оно отнимет у вам примерно 50 минут вашего драгоценного времени.

Думаю это стоит того что бы вы всё поняли и у вас больше не возникало вопросов к людям и претензий к редактору.

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

хотя, конечно, можно аргументировать

Если редактор нужен что бы править конфиги, достаточно nano.

посмотрите данное годное видео

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

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

Любой инструмент требует освоения, времени будет потрачено не более чем на настройку NetBeanse например.

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