Став кращим у Vim [закрито]


116

Я використовую Vim досить тривалий час, але перебуваю на рівні, де більшу частину часу використовую режим вставки, і я все ще використовую клавіші зі стрілками для переміщення (!).

Мені здається, що я не отримую найкращого мого прекрасного редактора, особливо щодо навігації (особливо коду), копіювання та вставки та інших маніпуляцій із існуючим кодом. (хоча мені дуже зручні складні схеми пошуку / заміни).

  • Як мені піти на навчання більше?
  • Які ресурси рекомендували б люди?

8
Що не так у використанні клавіш зі стрілками для переміщення? Ось що вони за !
Vilx-

39
@Vilx, ти не рухаєшся клавішами зі стрілками навіть у комп’ютерних бойових іграх ! Не кажучи вже про текстові редактори ...
П Швед

6
@Vilx: клавіші зі стрілками на клавіатурі знаходяться у жахливо незручному місці для будь-якого типу навігації. Ось чому канон у ViM полягає у використанні HJKL так, як ви використовували WASD у грі від першої особи.
Буде Вузден

4
WASD є, тому що простіше користуватися ним лівою рукою, оскільки правою керує мишею. Ліворукі використовують стрілки. І HJKL настільки протиінтуїтивний. Хто рухається куди?
Vilx-

8
Ну, я думаю, мова не йде про "стрілки проти hjkl", як про "переміщення курсору проти текстових об'єктів".
Маттео Ріва

Відповіді:


78

"Чому, о ЧОМУ, ці #? @! Горіхи використовують vi?" Це приємне вступ до "шляху Vim", особливо про текстові об'єкти, які є однією з найбільш визначальних особливостей Vim.


3
Як бонус, є приємний графічний шпаргалку (зв'язаний в кінці статті).
Csaba_H

Я не можу отримати доступ до цього посилання, здається. Навіть не з завитком. Чи може хтось підтвердити?
H.Rabiee

66

Ось кілька дивовижних скріншотів, які мають дати вам уявлення про те, чому слід дізнатися далі. Також є відео на проміжні та розширені теми, але початківці насправді є найважливішими.

Крім того, коли я відчув, що застоююсь і не дуже вивчаю "шлях Vim", я вирішив відключити клавіші зі стрілками як у звичайному, так і в режимі вставки. Це змушує вас використовувати ESC, щоб дістатися кудись, і змушує вас думати більше як Vim. Зрештою, я знову ввімкнув клавіші зі стрілками в режимі вставки, але я навряд чи використовую їх. Найчастіше є кращі способи обійти.

map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>

І особливо

imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>

5
Мені подобається ідея відключення клавіш зі стрілками, це приємний спосіб змусити себе припинити їх використання.
Ідан К

1
Це працювало для мене дуже добре, але перші кілька днів були надзвичайно розчарувальними. Після того, як ви звикнете до цього і перекинете звичку рухатися навколо TOO у режимі вставки, рекомендую повторно включити зображення.
Сара

Ці екранізації були приголомшливими. Дякуємо, що вказали.
Мерт Нухоглу

2
Вимкнення клавіш зі стрілками - ДУМОВА ідея, я зараз це роблю.
Горський

Відключення клавіш зі стрілками ґрунтується на припущенні, що клавіші зі стрілками більше не в курсі, ніж hjkl. Краще - отримати кращу клавіатуру. Я використовую Kinesis Advantage. Навіть якщо я використовував стандартну клавіатуру, hjkl все одно не має сенсу, оскільки я використовую дворак. Що я маю на увазі сказати: справа не в тому, що "не використовуйте клавіші зі стрілками", а "використовувати найефективніші засоби і не ухилятися від підвищення ефективності через криву навчання".
Обмежене спокутування

23
  1. введіть vimtutorу командному рядку
  2. перейдіть у vim, введіть: help або <F1>
  3. підписатися на розсилку
  4. офіційні документи vim

1
Я не розглядав питання про приєднання до списку розсилки: зроблено зараз :)
Джеймс

1
це гарне місце, щоб отримати допомогу та практикувати свою майстерність vim, вирішуючи проблеми інших людей.
ghostdog74

1
+1 для vimtutor - відмінний спосіб отримати шлях vim у вашій м’язовій пам’яті.
Гаміш Даунер

16

Ще два поради:

  • Використовуйте Vim для редагування всього (електронна пошта, веб-форми, код, ...). Коли щось відчувається повільно, мабуть, є швидший спосіб зробити це. :helpgrepтвій друг.

  • Перейдіть на сторінку http://vimgolf.com/ і змагайтеся. Я навчився таким чином багато порад і прийомів. [ Відмова від відповідальності : відповідальність за тривалі періоди часу, які "пропали безвісти", не приймається під час змагань у VimGolf ].


2
Охайний, я не знав про vimgolf!
Джеймс

1
@ Автоматично: Додано відмову.
Johnsyweb

2
@Johnsyweb: Я дуже хочу використовувати vim для всього, але як? Отримати належний клон vim усередині кожної веб-форми було б ідеально - тому що всі додатки веб-переглядача, які я знайшов, зазвичай реалізують лише невеликий випадковий підмножина функцій vim та перенастроюють вкладки клавіш, щоб врахувати той факт, що браузеру все ще потрібно доступ до певних клавішних клавіш.
Conrad.Dean


10

Ось як я навчився Віма (та ще купі речей). Це досить просто.

Перегляньте довідкові документи та знайдіть команду для того, що ви робите постійно. Наприклад, видаліть ціле слово. Нехай це пам’ятає про це.

Тепер, коли ви наступного разу натиснете "xxxxx", щоб видалити слово, зупиніться, поставте його назад і скористайтеся новою командою. Подивіться, якщо доведеться. Тож замість того, щоб натискати "xxxxxx", ви повертаєтесь назад і натискаєте "dw".

Робіть це знову і знову, спочатку це буде повільно, але з часом воно прилипне.

Коли ви отримаєте цю команду вниз, почніть з верхньої частини. Знайдіть іншу команду для дії, яку ви робите весь час ...

Ви були б здивовані, як швидко ви можете підібрати нові команди та методи таким чином.


7

Повторне вимкнення / вимкнення клавіш зі стрілками, як було запропоновано, - чудовий спосіб змусити себе не користуватися ними.

Ще одне, що слід врахувати: якщо натискання клавіші Esc на клавіатурі зовсім незручне, ви можете перезаписати Caps Lock на Esc у вашій ОС. Для мене це був надзвичайно корисний крок, оскільки Esc - це незручне охоплення моєї КБ, і це було ще однією перешкодою, яка підтримувала мене в режимі "Вставка" (тому що важко було вибратися). Якщо увімкнути Esc на Caps Lock, це дуже маленьке охоплення, а стрибки в режим «Вставка» та «поза ним» дуже швидкі.

Для вивчення вдосконалених матеріалів у Vim найкращим ресурсом є: допомога, але для зниження основ вам просто потрібно це зробити; це м’язова пам'ять більше, ніж усе. Ви кажете, що знаєте пошук. Свідомо використовуйте його як навігаційний інструмент. Пошуки [/,?] Та пошукові запити на основі вбудованих знаків [f, F, t, T] - одні з основних інструментів Vim navi. Просто використовуйте їх; у поєднанні з відключеними клавішами курсору ви будете навігації лише в м'язовій пам'яті за один раз.

Текстові об’єкти. Легко одна з найкращих особливостей редактора. Це інше, що потрібно негайно усвідомлено практикувати. Такі речі, як 'yiw', 'dit' тощо, такі потужні та швидкі; навчання та використання їх поодинці змусять вас відчувати себе користувачем Vim.

Після того, як текстові об’єкти та основна навігація вниз, настав час перейти до читання та навчання з: регулярно допомагайте та шукайте веб-сайти за чудовими плагінами. Серйозно, ти можеш використовувати Vim роками і мати "ах!" Момент випадково натрапив на якийсь незрозумілий примх в: допомогу, яку ви ніколи не знали.


Замість перестановки на Caps Lock я б запропонував Ctrl-C. Це легко набрати та досить звично для користувачів Linux.
BandGap

6

Дивіться цю тему: Який ваш найпродуктивніший ярлик із Vim?

Особливо перша відповідь.


3
Як автор "першої" відповіді, я мушу сказати, кажучи чесно, що це не обов'язково найкращий посібник для загального вдосконалення майстерності редактора. Він охоплює багато підстав щодо того, що можна зробити з vi, коли ти вважаєш це мовою для вираження способів маніпулювання текстом, екраном / терміналом та середовищем самого редактора. Тим не менш, багато цього матеріалу там досить просунуте.
Джим Денніс

1
Я не так багато навчився читати цю відповідь, що, думаю, ніколи б не навчився, читаючи документацію!
Джеймс


3

Як мені піти на навчання більше?

Прочитайте посібник vim повністю (введіть :h; ви можете переглядати звідти). Так ви знайомитеся з усіма рухами та командами. Це найкорисніше, якщо ви вже знаєте основи та хочете вдосконалитись.

Які ресурси рекомендували б люди?

vim.org, перегляньте найпопулярніші сценарії vim . Перевірте джерела їх, якщо знайдете щось цікаве. Або просто встановити їх і насолоджуватися. Цей сайт містить безліч посилань на скрипти, які допомагають переглядати вихідний код на різних мовах; і знайти їх там відносно легко.

StackOverflow.com також може допомогти .


3

Я створив цю гру, щоб допомогти племіннику вчитися, але вона працює лише на Firefox та Chrome>. < http://kikuchiyo.org

Наразі він просто займається рухом та входом у режим вставки. Бета-версія дозволяє атакувати ворогів світловими шаблями, "я" зліва та "а" праворуч: P

Продовжуйте вчитися Віму, варто докласти зусиль!

:)


Тепер , що це дійсно хороша ідея!
Джеймс

Оновлення: зараз сайт знаходиться на сайті kikuchiyos-vim-game.herokuapp.com .
kikuchiyo


2

Я все ще використовую клавіші зі стрілками для переміщення (!).

Я не бачу проблем з цим.

Чесно кажучи, яка ймовірність того, що вам доведеться використовувати vim та клавіатуру, у яких відсутні клавіші зі стрілками?

Ви знаєте, більшість людей використовують vim, тому що він виконує роботу (добре, тому що вони освоїли його до рівня, коли він виконує цю роботу для них), а не для того, щоб бути елітистами (як, наприклад, не використовуючи клавіші зі стрілками).

Кілька порад щодо вдосконалення своїх знань vim:

  • періодично відкривайте довідку vim у випадковому місці та читайте про випадкову відмінну ознаку. Це займе у вас пару хвилин. Можливо, ви не будете користуватися цією функцією протягом наступних X років. Але якщо вам пощастить, ви опинитесь у ситуації, коли побачите, що можете застосувати свої знання про цю особливість для досягнення певного завдання. Ви знову відкриєте довідку, щоб оновити пам’ять. Після використання функції на практиці кілька разів, вона приклеїться. З цього моменту ваші знання vim будуть покращені.
  • використання: довідка для копання у випадкові місця документації. Якщо вам потрібно щось зробити, і ви знайдете місце, яке пояснює це в документах, не зупиняйтеся на цьому. Прочитайте фрагмент документа ще раз. Знайдіть ключові слова. Для кожного ключового слова використовуйте: ключове слово довідки для виявлення логічних зв’язків з іншими частинами документації vim.

Я здогадуюсь, що у мене є проблема з читанням документації в тому, що я вважаю, що я не вчуся дуже ефективно, а не виконуючи їх.
Джеймс

1
Використання клавіш курсору для переміщення курсору на короткі відстані може бути настільки ж ефективним, як і використання клавіш [h], [j], [k], [l] ..., якщо ваші пальці виявляються поруч з ними з якоїсь іншої причини. Використання будь-яких лінійних рухів курсору є жахливим для більш ніж декількох стовпців або ліній руху. Зазвичай найкраще подумати про те, що ви шукаєте, і висловити це безпосередньо у vi, використовуючи / або? команди та регулярні вирази. Останній фрагмент тексту поблизу foo? G? Foo [Enter] (шість натискань клавіш). Перший рядок з "баром ... щось .. в ньому удар? 1G / bar. * Bang [Enter] (близько десятка натискань клавіш) ... і т.
Д.

Хоча клавіші зі стрілками, ймовірно, ефективніші, ніж досягнення миші, якщо ви набираєте, використовуючи клавіші домашнього ряду, щоб перегрупувати руки після введення послідовності символів, то для введення однієї з основних клавіш руху не потрібен рух. з 'j', 'k', 'l', і злегка ліворуч 'посмикування', щоб отримати клавішу 'h'. Якщо ви робите речі Vim так, ваші руки завжди повинні бути ближче до клавіш домашнього ряду, ніж до клавіш зі стрілками. Продовжуйте займатися, і ви отримаєте це. :)
kikuchiyo


2

так, як я перестав використовувати клавіші зі стрілками, не відключав їх (я все ще використовую їх у режимі "Вставка"), але якщо ви думаєте про це, якщо ви хочете піти праворуч, використовуйте свій рожевий палець, який є lключем, перейдіть ліво вказівним пальцем hклавішу, & подзвонити пальцем вгору ("задзвонити") kклавішу і "забрати" jключ.

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

Це також дуже допомагає мені, що я забув про те, як називаються ключі (h, j, k, l). Не дуже добре мнемонізувати їх запам’ятовувати таким чином, що я знайшов & також не дуже багато відображень за допомогою цих клавіш.





Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.