[Семінар Вім] [Брендон Лю] [Гарвардський університет] [Це CS50.] [CS50.TV] Сьогодні буде введення в Vim. Скільки з вас, хлопці чули про Vim? Що ви чули про Vim? [Студент] Він вирішує всі ваші проблеми. [Брендон Л.] Він вирішує всі ваші проблеми. Все інше ви, хлопці чули про Vim? Будь-які враження? [Студент] Майже всі, кого я говорив з подібними використовувати Vim. О, солодкий. [Студент] Багато людей, яких я знаю, як використовувати Vim. Гаразд, це добре, тому що багато людей в CS51 почати забрати Emacs, бо Emacs має трохи кращу підтримку для мови ви збираєтеся використовувати в CS51, і я хвилююся, що не вистачає людей в Гарварді використовувати Vim, так що я дійсно спробувати зробити хорошу роботу заохочення використання Vim. Але от класичний XKCD коміксів, які ви, хлопці можуть виявитися цікавими. Ви, хлопці, використовується Nano до взагалі? Цей комікс говорить Nano? Справжні програмісти використовувати Emacs. Ей, справжні програмісти використовувати Vim. Ні, справжні програмісти використовують Ед, який це-ви не хочете використовувати ред. Це дуже, дуже старий і дуже погано, і справжні програмісти використовують намагнічений голки і тверда рука. І ви можете ознайомитися з рештою, але це досить забавно. І найсмішніше в кінці. Вони кажуть: "О, так, звичайно, є команда Emacs, щоб зробити це." Старий добрий Cx Mc M-метелик, яка є свого роду удар на Emacs тому Emacs історично відомо, трохи роздутою і є команди для чого завгодно, так що це свого роду жарт для Emacs. Що таке Вім? Вім є текстовий редактор просунутого програміста. Я дуже хочу, щоб зробити відмінність між текстовим редактором і щось на зразок процесора документа. Microsoft Word відомий як процесор документа. Ви можете задати поля, зробити речі напівжирний шрифт, підкреслення речі, вдарити через речі, змінити розмір шрифту і ще багато чого. Текстовий редактор нічого не робить більше, ніж просто редагувати текст. Буквально ви просто повинні символів. Там немає роду стиль, розмір, шрифти, кольори, або що-небудь подібне. Все, що вам зробити, це редагування тексту, і Вім був спеціально зроблений для програмування. Вона має багато функцій, вбудованих в тільки для програмування. Він створений спеціально для ефективного редагування тексту. Загалом, Vim, як відомо, в основному швидкий текстовий редактор можливо, ви можете використовувати в порівнянні з будь-який інший текстовий редактор, який можливий. Багато IDE-подібні функції не будуються безпосередньо в Vim, так що якщо ви використовували IDE, і ви звикли до речей, як скомпілювати і запустити автоматично або налагодження, що у вашому IDE або цілого ряду різних речей Вім не спадає с, що, природно, але є цілий ряд плагінів, які можна використовувати, щоб додати такого роду функціональність для Vim. Вім сама по собі спрямована на редагування тексту і робить редагування тексту дуже, дуже добре. І, нарешті, це дійсно настроюється і розширюваний, і в основному Вім був навколо, або Vi, які Вім створений на, була навколо протягом більше 40 років, і це дуже, дуже глибока програма, і люди будуть використовувати його на все життя і ніколи по-справжньому опанувати програму на повну котушку, і ви завжди будете продовжувати навчатися протягом усього життя протягом багатьох років, завжди стає краще і краще. Там немає в основному не край тому, що ви можете дізнатися і скільки ви можете поліпшити за Vim, який є дійсно захоплюючим. Ви ж не хочете, щоб подивитися його як щось страшне, тому що ви можете стати дуже, дуже професійний в Vim протягом декількох тижнів, але це ніби як постійне- ви завжди можете дізнатися більше і дізнатися більше і робити речі краще і краще, яка є своєрідною захоплюючим для мене. Це приклад того, що Вім виглядає. Це не моє. Ви побачите деякі живі демонстрації прямо зараз. Це приклад того, що Вім може виглядати. Те, що ми збираємося зробити сьогодні ми збираємося почати з  швидкий вітриною, що Вім можете зробити. Я збираюся зробити деякі трюки і ще багато чого для вас, хлопці так що ви можете зрозуміти, чому я люблю Vim так багато і чому такі люди, як Vim так багато, а потім звідти ми підемо в м'якого введення. Насправді, це буде трохи швидко, введення в Vim. Я попрошу вас, хлопці, щоб завантажити текстовий файл і слідувати разом зі мною, якщо ви можете. Це Вім, і прямо тут я використовую MacVim, так що якщо ви, хлопці, Маки ви можете розглянути можливість використання MacVim тому що це графічна версія Vim, хоча регулярного Vim, що у вашому командного рядка, працює просто відмінно. Я збираюся показати вам кілька випадкових поради та рекомендації що ви можете використовувати в Vim, щоб показати вам, чому це так здорово. Всього кілька випадкових речей я збираюся пройти. Перше, що текстові об'єкти, і є кілька команд навколо текстових об'єктів, і я насправді вчити вас, що текст об'єкти більш докладно пізніше у семінарі, але, наприклад, скажімо, я записав моє ім'я неправильно, Barndon Лю, і я хочу його змінити. Все, що я повинен зробити, це отримати свій курсор десь в моєму імені і введіть команду СМР, і він буде видалити всю моє прізвище, поставити мене в режимі вставки, і я можу надрукувати на моє ім'я і виправити її. Аналогічним чином, якщо я хочу змінити щось усередині лапок є також команда для цього. Я можу видалити речі всередині лапок. Немає більше необхідності двічі клацніть, перемістити руку до миші, подвійне клацання, а потім щось типу масштаб Ви можете робити все з клавіатури, що це таке. Або ж, скажімо, у мене є це зображення тег всередині цього тега прив'язки. Хлопці, ви покриті HTML в класі ще? Так, так може бути, я хочете видалити цей тег, які зазвичай те, що ви повинні зробити, це ви повинні використовувати вашу мишу і ретельно виділити саме те, що ви хочете видалити, і видалити його. Але в Vim, який просто ДІТ, і ви можете видалити його дійсно швидко, і я поясню вам, що означає, що всі ці команди і як ви їх використовуєте в секунду. Інший приклад, у мене є певний код тут, і припустимо, що я хочу зробити відступ код, але я хочу, щоб збільшити відступ код просто в дужках, і я можу також відступ код, використовуючи 3 команди використовуючи в основному> IB. Інша справа, що це дійсно здорово про Vim щось, зване візуальне редагування блок. Я не знаю, якщо ви, хлопці, ніколи не хотіли, щоб виділити прямокутний блок тексту в коді іноді замість того, щоб зробити цей дивний вид лінії річ, яка охоплює всі різні лінії. Наприклад, в Vim ви можете зробити це. Я можу виділити прямокутники, як це, який є досить прохолодно, але крім того, що я можу змінити, за допомогою цієї функціональності. Наприклад, якщо я хочу дати якусь префікса для всіх наших імен Я можу виділити блок, а потім додати щось. Точно, я можу також виділити цей блок і виберіть видалити його, або, може бути, я виділю цей блок і змінити його на D, тому що ми всі лікарі. У будь-якому випадку, ви можете робити всі ці різні речі. Нарешті, складаються дійсно здорово. Багато інтегрованих середовищ розробки є це, де ви можете скласти різні функції з поля зору у разі, якщо ви не хочете їх бачити. Наприклад, припустимо, у мене є ця купу тексту тут, і я дійсно не хочу його бачити. Я хочу, щоб тримати його з поля зору, тому що я редагую щось ще у файлі. Я можу скласти його таким чином, це все звалилося, і, таким чином, що це поза увагою, і я можу редагувати інші речі, які на сторінці, і це дійсно здорово. Ви можете скласти функції і ще багато чого або скласти класи, коли ви програмуєте тільки, щоб тримати їх з поля зору, коли ви не редагуючи їх, і пізніше, коли ви хочете побачити їх, ви можете відкрити їх. І ви можете бачити, що це тільки що відкрив все. Вкладки, буфери, і вікна. Вім досить прохолодно в тому, що зазвичай у великій кількості текстових редакторах можна редагувати тільки один файл за раз, як в Nano, або, може бути, якщо ви використовуєте Блокнот або Gedit. Я ніколи насправді не використовували Gedit дуже багато, але принаймні в Notepad + + ви можете мати вкладки, але Вім має концепцію вкладок, буфери і вікон. Наприклад, ви можете відкрити кілька нових вкладках. Тут можна побачити на самому верху у мене зараз купа вкладок, і я можу закрити їх. Крім того, є таке поняття буферів, яка є ідея, що, як тільки ви відкрили файл він залишається живий в буфері, і якщо ви хочете, щоб перейти до цього файлу дуже швидко Ви можете перейти до неї дуже швидко в буфері, а також, і, крім того, протягом одного панелі можна також розділити своє вікно на кілька вікон. Наприклад, якщо я хочу, щоб розділити вікно на декілька вікон Ви можете побачити прямо тут, що в мене може бути один і той же код двічі, і я можу розділити все більше і більше і більше, і зараз вона не виглядає, що добре тому що за замовчуванням у мене розмір вікна за замовчуванням бути навіть більшим так що всі інші розчавив поза, але, як правило, коли я на моєму комп'ютері, а не на проектор У мене може бути кілька стекол відкрити в той же час, який дійсно хороший для редагування декількох файлів одночасно. Ви також можете мати такі речі, як вибрати і замінити, і ми фактично покривають, що в семінарі, так що я буду показувати, що на даний момент. Ви також можете взаємодіяти з командного рядка у всіляких різному. Наприклад, якщо у мене є якийсь список тут, і я хочу, щоб залагодити його- Я не знаю, давайте додамо ще один плід, виноград, і я можу підкреслити це за допомогою функції виділення і викликати свого роду, і це буде сортувати його автоматично для мене. Аналогічно, якщо ви збираєтеся бути редагування CSS, який я думаю, ви, ймовірно, буде робити для остаточного проекту, більшість людей, і може бути, ви хочете зберегти ваш CSS, організований сортуючи їх в алфавітному порядку. Ви також можете виділити їх і називають роду, і це буде сортувати їх для вас. Ось деякі з прикладів речей, які Вім можете зробити, і ви помітите, що ключова річ, що я дійсно хочу звернути вашу увагу на є те, що я роблю все з клавіатури, і якщо ви в змозі побачити, де мої руки поміщаються ви також побачите, що мої руки ніколи не перейти від основного ряду. Зазвичай, коли ви редагуєте текст, який ви, як правило, використовувати мишу і натисніть навколо і ще багато чого, і такого роду рухи тягне вас вниз і час відходи, або, можливо, ви рухаєтеся між домашньою рядку і клавіш зі стрілками, і так ви рухаєтеся вперед і назад так, що трохи громіздким але і уповільнює роботу, і справа в тому, як тільки ви отримаєте дійсно гарний у Vim все, що ви хочете зробити, це зробити без того, щоб рухати руками від основного ряду, який є відмінним. Тримайся, я йду, щоб відкрити цей додаток. Там ми йдемо. Тепер ви можете побачити, які команди біжать за правий нижній вікно. Всі функції, які я тільки що показав вам речі, які включені за замовчуванням разом з Vim, але є також величезна кількість плагінів, які можна також використовувати поліпшити свій Vim досвід. Якщо ви завантажили файли, які я включив, і є інструкції про те, як встановити їх в PowerPoint а також в електронній пошті я послав, я встановив близько 40 плагінів або, може бути 30 плагіни, і всі до єдиного приносить додаткову функціональність до Vim, який покращує ваш Vim досвід. Наприклад, одна з моїх улюблених щось, зване surround.vim, і це в основному дозволяє працювати з оточуючими або контрольні символи набагато легше. Одним із прикладів, я не знаю, якщо ви, хлопці, коли-небудь код у LaTeX, але латекс є математика мову верстки, який використовується, щоб зробити дійсно приємні оку математика, і всякий раз, коли ви хочете щось подивитися як математика Ви оберніть його в знаки долара, і скажемо, я друкую деякий рівняння, як F = та, і я забув упакувати його в знаки долара. Тоді я можу підкреслити це і оберніть його в знаки долара просто так. Крім того, Вім дозволяє видалити речі всередині тегів і видаляти теги і ще багато чого, але Vim за своєю природою не дозволяють змінювати теги, так, наприклад, у мене є цей DIV тег, і я хочу, щоб перейти на HTML5 і використовувати новий тег заголовка. Що я можу зробити зміни навколишніх тег і тип в заголовку, і він буде автоматично змінити це для мене. Точно так само, скажімо, у нас є щось в дужках, , І я хотів, щоб змінити це від дужках в дужках або щось в цьому роді. Я також можете змінити які дійсно легко, ввівши в с до змін, с для об'ємного дужки. О, я думаю, я повинен ввести його швидше. Дужки і скоби або кронштейни, і він буде автоматично міняти, що для мене, який дійсно хороший, в іншому випадку, як правило, це дійсно громіздким. Це дійсно добре для перемикання між, можливо, однією цитатою і подвійні струни котирувань або щось в цьому роді. Ось один із прикладів прецедент. Там в плагін називається Втікач яка інтегрується з Git. Я припускаю, що, може бути, ви, хлопці, не використовується Git, що багато чого в CS50, але ви опинитеся за допомогою Git все більше і більше і більше, не тільки в класах по всій Гарварді, але і на робочі місця і ще багато чого, і, як правило, ви повинні перемикатися між командний рядок і Вім взаємодіяти з Git, але є плагіни для інтеграції з Git зсередини Vim а також, щоб дати вам навіть додаткову функціональність поверх Git. Там-то називається NERDTree, які ви можете використовувати, щоб дослідити файлові структури зсередини Vim. Наприклад, я можу відкрити NERDTree на правій панелі, і ви можете в основному см. випадкові файли і які відкрито не податки, не дивіться на мої податки. Ви можете подивитися на файли і ще багато чого і відкритих інших файлів і так далі і тому подібне. І я не буду вдаватися в цих інших плагінів, тому ми можемо в основному пірнати в і почати працювати на Vim, але є плагіни, які дозволяють коментувати легше, плагіни, які дозволяють перейти в між файлами легше, плагіни, які дають вам Перевірка синтаксису зсередини Vim, які дійсно здорово, і це дає вам Перевірка синтаксису для більшості мов прямо з коробки, речі, як веселки дужках, що насправді дуже, дуже круто. Дозвольте мені навести вам приклад того, що просто зараз. Давайте подивимося. Ось деякі випадкові код, який я писав, і ви помітите, що дужки і дужки всі кольорові, і дужки і тримачі одного кольору відповідності, що приємно а іноді покращує читаність коду. У вас також є автозавершения, табличний формат. Якщо у вас є щось, що ви хочете, щоб отримати всі коментарі вибудовуватися або ви хочете зробити таблицю в тексті, і ви хочете отримати все, щоб виглядати хорошим столом, замість того, щоб форматувати це вручну є плагіни, які будуть форматі, який для вас і так далі і тому подібне. Цей список можна продовжувати і далі і далі. Я міг годинами досліджувати всі різні плагіни Vim, які існують, і це неймовірно, що там. Є питання до цих пір? Солодкий. У цьому випадку, ми збираємося, щоб почати грати навколо з Vim, і я хочу, щоб ви, хлопці, працювати з деякими Vim зі мною так що ви можете отримати уявлення про неї, і я можу вам у ваших перших кроків, що працюють з Vim тому що багато людей отримати перевантажені, коли вони відкривають Vim вгору, а іноді, якщо ви навіть не знаєте, команду для виходу ви можете навіть не вийти з Vim, але це не так уже й погано. Вам просто потрібно кілька хвилин керівництва з боку когось, хто використовував Vim до або читати деякі підручники в Інтернеті, і ви будете на вашому шляху в найкоротші терміни. Тут є деякі інструкції по установці Vim, якщо ви ще цього не зробили. Ви можете подивитися на цих слайдах після презентації, якщо ви хочете встановити більше речей. Крім того, це лише деякі інструкції з установки мої файли конфігурації, і ви також можете дотримуватися цих інструкцій пізніше, якщо ви ще цього не зробили. Якщо ви, хлопці могли б піти за цим посиланням і завантажити текстовий файл. Посилання приведе вас до цієї текстовий файл, який я хотів би вам завантажити і відкрити в Vim, і є купа вправ і ще багато чого в там, що ви можете слідувати навколо зі мною і почати отримувати деяку практику з деякими з основних операцій в Vim. Добре. У той час як ви відкриваєте, що до Я збираюся дати короткий вступ 2 дійсно ключових принципів в Vim редагування, які дійсно важливо зрозуміти, перш ніж поринути в Vim, і це модальний редагування та оператори та руху. Я розповім редагування модальний, а потім ми розглянемо оператори та руху в небагато. Перший ключ відмінність між Vim і в значній мірі всі інші текстові редактори будь-якого роду є те, що Вім є редактором модальний, і що це означає, коли ви використовуєте Vim ви могли б бути в одному з багатьох різних режимах. Там в нормальний режим, є режим вставки, є візуальний режим, так далі і так далі, і річ, ваші натиснення клавіш взяти на різних дій, взяти на себе інший сенс, залежно від того, який режим ви дюйма Просто як приклад, звичайний режим є режим ви знаходитесь в, коли ви рухаєтеся, і тому я хотів би використовувати ключ J рухатися вниз, але в режимі вставки, можна використовувати ключ J фактично вдрукувати J на ​​екрані, і саме тому багато людей плутаються, тому що вони не звикли до перебуваючи в різних режимах весь час, і так вони будуть набирати речі, і ви звикли до того, що ви вводите на екрані з'являються, але в Vim може бути, ваш курсор рухається повсюдно тому ви друкуєте дивні символи, і раптом ви отримуєте зсувається в режимі вставки, тому що ви набрали деякий ключ , Яка ставить вас в режим вставки, а потім текст починається вилітали, так що люди плутаються через це. Але ви повинні відслідковувати, що режим ви знаходитесь в, і якщо ви подивитеся в самому низу панелі інструментів Vim не повинно бути показником того, що говорить вам, що режим ви в даний момент, який повинен бути корисним. Але в цілому, основні режими 3 ви повинні знати про, Є тільки, напевно, 6 або 7 або 8 режимів або близько того, але ви проводите більшу частину свого часу в 3. Перше, що нормальний режим. Це де ви проводите більшу частину свого часу. Всі натиснення клавіш увійшли як свого роду команди, і ми будемо вчитися багато цих команд протягом дня сьогодні. Інший режим режим вставки, який є, де ви насправді набираєте речі, і режим вставки в основному режимі ви зазвичай звикли. Щось Ви набираєте, і він просто приходить на екрані, і візуальний режим щось, де ви можете зробити підсвічування. Ви бачили раніше, де іноді я б виділення тексту і маніпулювання його по-різному, і це приклад використання візуальний режим. Ми почнемо з абсолютними основами вам потрібно, щоб вижити в Vim, і це в основному ці 7 команд прямо тут. HJKL використовуються для переміщення по файлу, і вони відповідають вліво, вниз, вгору і вправо, і ви можете вільно використовувати клавіші зі стрілками, а також, але ми дійсно рекомендуємо вам використовувати HJKL якомога більше бо ідея в тому, що під час редагування, ви можете переміщатися по документу без того, щоб перекласти між клавішами зі стрілками і де ви друкуєте, яка насправді, дуже приємно. Ви просто хочете, щоб перемістити декілька символів над. Ви не повинні перекладати всю вашу руку, і це частково добре мати це. Деякі експерти Вім фактично карту свої клавіші зі стрілками для інших функцій тому що вони вже є HJKL, і вони можуть використовувати свої клавіші зі стрілками для інших функцій, а також. HJKL переміщує вас навколо, а ти в нормальному режимі. Якщо ви хочете перейти в режим вставки і щось типу Ви можете натиснути для налаштувань режим вставки, і що ставить вас в режимі вставки, і ви можете надрукувати що-небудь, і ви наберете втечу щоб отримати з режиму вставки назад в нормальний режим. Втеча завжди посилає вас назад у нормальний режим незалежно від того, в якому режимі ви знаходитесь, і якщо ви не хочете, щоб залишити ви можете ввести: WQ введіть, і те, як ви можете пам'ятати, що це ж стендів для запису, і д позначає кинути курити, так: WQ, і товстої кишки запускає команду, і так: WQ введіть запустити команду Збереження та вихід. Якщо відкрити файл до ми пройдемо першій вправі разом. Крок 1 виживає в Vim, і, сподіваюся, ви, хлопці, у всіх є ця відкрита. Добре, і у нас є кілька простих вправ для вас, щоб звикнути до використання цих клавіш. HJKL справді не здається інтуїтивно спочатку, і це є одним з початкових блоків, що люди мають при використанні Vim використовує ці клавіші для навігації по. Це не інтуїтивно, але як тільки ви звикнете до нього це дійсно інтегрується в своєму розумі, і багато людей часто виявляються за допомогою J і К в Слові або ж в Chrome, а насправді люди створили цей плагін Chrome під назвою Vimium , Який можна використовувати в Chrome або Chromium для навігації по Chrome за допомогою клавіатури, використовуючи Вім-як ярлики, так що люди з великим ентузіазмом про це, але йти вперед і спробувати і використання HJKL переміщатися між числами тільки так можна ознайомитися з тим, як ці речі працюють. Як тільки ви закінчите, що цього, ви можете піти і пограти з цього лабіринту я створив просто для задоволення, і ви можете роду слідувати пунктирну лінію і намагайтеся не врізатися в стіни і спробувати зробити це до кінця лабіринту. Якщо ви використовуєте ярлики в Gmail або будь-яку кількість різних додатків Ви знайдете, що J і К, наприклад, часто використовуються для переміщення вгору і вниз, і що в основному виходить від Vim суті, так що ви повинні J і K, і це дуже приємно, тому що ви можете переміщатися вгору і вниз без необхідності перемістити руку назад і вперед від клавіш зі стрілками. Тепер давайте спробуємо переходить в режим вставки і вийти з режиму вставки. Ви помітите, що зараз мій курсор знаходиться великий, чорний ящик, і коли ви йдете в режимі вставки ви виявите, що він перетворюється на вузьку курсора, як ви звикли. Якщо ви використовуєте Vim в терміналі ви не можете знайти, щоб це було так тому що термінал не підтримує цей вид тонкої курсора, але якщо ви використовуєте MacVim або GVim на ОС Windows то ви повинні знайти, що він перетворюється на курсор, і це дуже швидко візуальний індикатор. Це для вас, щоб розповісти ви в звичайній режимі або режимі вставки. Давайте йти вперед і спробувати редагування цю лінію. Заповніть його з вашої власної інформації або те, що це, і як ви можете зробити це, ви можете піднятися на кінці заготовки, Тип I, щоб потрапити в режим вставки, і ви можете повернутися на символ назад і ввести своє ім'я, і ​​коли ви закінчите, набравши Ви можете натиснути втечу, щоб вийти з режиму вставки, і ви можете рухатися сюди, типу вставки для видалення, що, введіть втечу, щоб вийти з режиму вставки, і ви можете ввести: ж введіть , Щоб зберегти файл. Ви можете ввести тільки: ж, щоб зберегти файл. Ви можете ввести тільки: Q для виходу без збереження, або ви можете ввести: WQ, щоб зберегти і вийти. Звичайно, ми не хочемо, щоб кинути ще, так що ви можете ввести в: ш. І, може бути, що здавалося трохи неефективно спочатку тому, щоб перейти до цієї точки ви повинні були типу J купу разів, може бути, L купу разів, щоб дістатися до того місця, і ви повинні натиснути Backspace купу разів, і це здавалося дійсно неефективно тоді як зазвичай ви, ймовірно, наведіть курсор миші на є, подвійне клацання і почати друкувати, і, звичайно, справа в тому, коли ви вперше почати з Vim, і ви тільки знати ці основні команди, так, це буде трохи повільніше, але незабаром ви дізнаєтеся деякі більш потужні команди, який дозволить вам переміщатися по документах набагато швидше, і у вас не буде мати цей дуже громіздкий використання повторюючи Js і повторюючи Ks і Ls і так далі і тому подібне. Є питання до цих пір? Тверда речовина. Повернутися до PowerPoint. Тепер ми збираємося ввести ще кілька команд для просунутого пересування. Ви випробували того, щоб вводити можливо L багато чи H багато, і ось ще деякі команди, які можна використовувати для переміщення по швидше. Припустимо, що ваш курсор знаходиться в O на себе в деяких в "Це просто текст," і ось ще 5 команд, які можна використовувати для переміщення по лінії більш легко. Так ^ і $ рухатися вам на початку і кінці лінії, і в якийсь момент, коли ви дізнаєтеся регулярних висловів чи інші різні речі ви виявите, що ці роду конвенцій дуже поширені. ^ Зазвичай відноситься до початку рядка. $ Зазвичай відноситься до кінця рядка. Це дуже легко запам'ятати, а так само, б, е, і без, вони легко запам'ятати, а тому, що б відповідає резервного або початок, е відповідає кінця, який є кінцем слова, і ж відповідає наступному слову, так ж в слово. І якщо ви тримаєте набравши е, або продовжуйте вводити текст ж Ви помічаєте, ви можете перемикатися між словами, і це набагато швидше, ніж просто набравши л. Тепер, наступне, що є оператором-Motion Модель. Насправді це один з ключових причин, чому Вім можуть бути настільки потужним, і це тому, що ви можете істотно складати різні елементи в більш потужних функцій, так що в цілому коли ви робите що-небудь в Vim ви можете думати про нього, як об'єднання оператора з руху. До цих пір ми просто мали справу з рухами, як HJKL. Вони рухаються вас навколо, а потім б і ш, вони також перемістить вас навколо різних способів, але ми ще не пішли, щоб бути в змозі видалити речі або змінити стан речей або ще багато чого, і коли ви комбайнерів з рухів, то ви в змозі мати набагато більш потужний ефект, так, наприклад, якби я хотів, щоб видалити два слова, я можу використовувати д для оператора видалення, і я можу додати 2 вказує, що я хочу видалити 2 слова, а потім я включати рух. Я могла б включати ж сказати видалити 2 слова. Я міг би використовувати щось на зразок J сказати видалити спадні 2 рази і видалити 2 рядки нижче мене. Я міг би сказати D2B видалити назад двічі, і є ще більше руху, ніж ті, що я показав тут дійсно, дійсно зробити ваш Вім редагування набагато більш потужним. Ось деякі з найбільш популярних або найпоширеніших операторів і досить легко запам'ятати, а також. D для видалення, з змін. С в основному та ж сама річ як зміна винятком того, що при використанні з вас автоматично отримати покласти в режим вставки згодом. Зазвичай, коли ви використовуєте видалення ви використовуєте його з нормального режиму, і після видалення те, що ви залишитися в нормальному режимі. Але якщо ви хочете щось змінити, ви можете використовувати C видалити щось, а потім відразу переходить у режим вставки так що ви можете почати друкувати і виправити щось. Y для смикаючи. Це в основному поняття Vim, копіювання. Наприклад, якщо я хочу, щоб скопіювати наступні 2 слова, які я можу зробити y2w або щось на зразок цього, і V для виділення, по суті. А також те, що це дійсно здорово, якщо ви введете оператор двічі він діятиме на всій лінії, так що якщо я хочу видалити весь рядок Я можу надрукувати дд видалити весь рядок, або якщо я хочу, щоб скопіювати всю лінію я можу використовувати рр. або щось в цьому роді. Давайте спробуємо це ще небагато. Там в тренажерний тут для просунутих операторів руху, а і навіть деякі інші речі, які я не збираюся описувати в PowerPoint сьогодні, але ви можете відчувати себе вільно, щоб подивитися на них надалі і пограти з ними та ознайомитися з ними. Оператори і рухів. Наприклад, припустимо, є ці 2 слова, які ви просто хочете видалити у реченні. Що ви хочете зробити, це ви хочете, щоб переконатися, що ваш курсор знаходиться на початку першого слова ви хочете видалити, і ви можете ввести в d2w, і він буде видалити ці 2 слова для вас. І, використовуючи цей точний команд, D2W, може здатися трохи громіздким і безглуздо, але це, як передбачається, щоб висловити думку що ви можете скласти ці різні речі, а також на всякий випадок ви опинилися в ситуації, то ви можете в кінцевому підсумку використання DW або D2W, які я використовувати час від часу. Dd і куб.см я використовую набагато частіше, тому що ви можете діяти на цілих ліній. Наприклад, припустимо, що у мене є цей випадковий список тут, і, можливо, я хочу видалити рядок, яка говорить хаскі, тому що це не підходить, тільки тому, що, і я не хочу, щоб це потім переходить в режим вставки. Я хочу, щоб видалити його, і в цьому випадку я міг ввести дд, і що буде видалити весь рядок. Але, припустимо, тепер є ця інша лінія, що я хочу, щоб видалити, але я також хочу, щоб виправити це, і переписати його, і в цьому випадку я постараюся щось на зразок куб, і що видаляє весь рядок, але ставить мене в режимі вставки, як ви можете бачити, і я можу виправити його звідти. І є багато, багато різних способів, ви можете комбайнерів і руху, і як ви використовуєте Vim все більше і більше ви дізнаєтеся більше про різні способи Ви можете використовувати ці команди, і ви станете краще і краще. Дивовижний, тепер ось деякі інші різні команди що також дуже, дуже широко використовується, а також допоможе вам стати краще в Vim. Наприклад, ми говорили про рядкової В для візуальне виділення. Ми також можемо використовувати прописну V для підсвічування візуальної лінії. Таким чином, ви можете виділити цілі рядки в той час, набагато легше. Ви можете використовувати O коли ви знаходитесь в нормальному режимі, щоб в основному вставити новий рядок нижче риси ви знаходитеся в даний момент, і покласти його в режим вставки, щоб почати друкувати. Ви можете використовувати х у нижньому регістрі, щоб видалити символ, який нині курсором. Ви також можете використовувати у скасувати, що частково добре, і ви можете використовувати капіталу, щоб додати в кінець поточного рядка, тому, можливо, курсор знаходиться десь на лінії, і ви хочете додати в кінці лінії. Тоді можна ввести капіталу негайно перейти в кінець рядка і перейти в режим вставки, так що ви можете додати в кінці лінії. Я думаю, у мене є ще кілька вправ для того, що ми можемо спробувати. Насправді, ні, я не знаю. Не для тих,. Але у нас є ще кілька вправ для наступної секції, які ми побачимо. Але це ви можете спробувати себе в ролі добре. Наприклад, якщо ви введете в черговий V, ви отримаєте звичайний підсвічування, що ви звикли так. Якщо ви наберете в столиці V, ви можете отримати повну лінійку підсвічування так, або якщо я друкую в про нього в основному відкриє нову лінію для мене, який почасти гарний. X я можу використовувати для видалення символів з курсором. Я можу натиснути х купою часу і видалити матеріал. Я можу натиснути у скасувати все таке. , Я можу ввести негайно піти в кінці лінії, і я також включені кілька інших хороших ключі що ви можете також подивитися на після презентації, щоб дізнатися деякі інші команди. [Студент] Що заміна о? [Брендон Л.] Заміна також дійсно здорово і в основному, якщо ви йдете куди-небудь- ви коли-небудь-люди дійсно не використовувати його, що багато чого більше в ці дні, але ви, хлопці, коли-небудь бачив в Microsoft Word, якщо ви введете вставку ви раптом йти в цьому дивному режимі, де кожен символ, що вводиться в основному замінює наступний символ? Я не знаю, якщо ви, хлопці-небудь бачив, що. Це схоже на те. Наприклад, якщо я хочу, щоб перезаписати те, що я в даний час чомусь Я можу надрукувати в столиці R, і тепер я буду в режимі заміни, як ви можете бачити в лівому нижньому кутку. Якщо я друкую матеріал він переписує речі, і я можу також забій, який круто, і я можу скасувати це. Я не використовую, що дуже часто, але час від часу він стає зручним. Давайте поговоримо про текстових об'єктів, що є одним з моїх улюблених речей про Vim, чесно. Текстові об'єкти в основному це поняття визначення якусь шматок тексту всередині текстового файлу, і я піду за цих клавіш перше, і тоді я дам вам кілька демонстрацій для вас більш повно зрозуміти, що це означає. W ставиться до слова, як і текстовий об'єкт як слово, тому деякі слова, як зазвичай це знаєте, і якщо є розділові знаки ось поруч зі словом то вона не буде включати в себе знаки пунктуації в цілому. Але, наприклад, якщо ви хочете включити пунктуацію чомусь або ви робите щось, що це не англійська, і ви хочете, щоб включити всі символи, які окреслені пробілами Ви можете також використовувати капітал W, щоб отримати все, що оточений пробілами. Ви також можете використовувати дужки для позначення текстового об'єкта що знаходиться всередині дужок. Ви можете зробити те ж саме за допомогою квадратних дужок, кутові дужки, дужки і лапки, а, нарешті, Ви можете також використовувати т для позначення деякого тега. Дозвольте мені показати вам, як це насправді втрачає значення. Наприклад, це моя найперша приклад в моїй вітрині. Там-то слово в цьому реченні, яке я хочу змінити, і ми говорили про W використовується як руху, але ви також можете використовувати його в якості текстового об'єкта, як так. Наприклад, один із способів я міг змінити ім'я Барак або в основному змінити його , Я міг піти на початку цього слова і типу в с до змін і без в слово, і що буде стерти слово і перевести його в режим вставки. Але це дуже дратує, щоб у мене піти на початку слова весь час. Це дійсно дратує. Я не хочу, щоб це зробити. Я дійсно може бути в будь-якому місці всередині його імені і введіть у СМР, і я означає внутрішній, так що якщо я типу в СМР він виступає за зміни у слові, або, іншими словами, змінити слово, коли я перебуваю в даний час всередині, і це дасть вам точно такий же ефект. Ви можете виправити це. Аналогічно, можливо, у мене є деякі справи, як це де чомусь є деякі роздільники або щось в цьому роді, або є деякі знаки пунктуації, і я хотів, щоб видалити все це. Якщо я друкую в СМР будуть видалені, що знаходиться усередині цих обмежувачів, але я хочу, щоб отримати все це, який оточений пробілами, тому я можу використовувати СМР видалити все це. Я введіть у п'ять, зробити те ж саме, і введіть в шість. Аналогічним чином, якщо я хочу змінити щось, що в дужках Я можу надрукувати в CI) для видалення всього, що знаходиться всередині дужок а потім заповнити все, що я хочу зробити, як десяткового агдс, все, що ви хочете зробити, і точно так само, те ж саме з лапками. Я можу це виправити текст, який знаходиться всередині лапок, і я можу також змінити стан речей, які знаходяться всередині тегів. Чи має це сенс? Ще одна річ ви можете зробити, це вам не доведеться використовувати с. Ви також можете використовувати D Якщо ви хочете видалити, що знаходиться усередині цих тегів. Якщо я хочу, щоб видалити текст всередині тега я можу використовувати дит видалити цей тег. Я можу також використовувати віт, щоб виділити те, що всередині тега, наприклад. Інша справа, замість того щоб використовувати I в середині ви можете також використовувати, яка виступає за все, так що не забудьте, якщо ви використовуєте я він буде посилатися на текстовому об'єкті або використовувати текстовий об'єкт, що міститься всередині роздільників, але якщо ви використовуєте це буде включати в себе цей текст, а також саму роздільник. Наприклад, якщо я хочу, щоб виділити цей текст і навколишнього тег Я можу використовувати ПДВ, V для візуального підсвічуванням, для всіх, а потім т для тега. Ви можете зробити щось на зразок цього, а також. Може бути, я хочете видалити цей google.com з лапок навколо нього, а також, і я можу використовувати щось на зразок так ", щоб видалити все, що, наприклад. Є питання до цих пір? Я розумію, що я поховання на вас багато Vim команд відразу, і це в основному тому, що я хочу піддавати вас всіх різних команд і дати Вам введення в те, що ці команди роблять в Vim. Але те, що буде мати, так це коли ви повернетеся ви будете мати, щоб повільно підняти ці команди один за іншим. Ви ж не хочете, щоб розтрощити себе, тому що це занадто переважною. Якщо ви хочете забрати Vim, що у вас є, щоб дійсно зробити це почати з першого основного набору, і я розбив його на уроках для вас що зробити його простіше для вас, щоб слідувати, і спробувати освоїти кожен набір команд один за іншим, по одному. Це занадто багато, щоб зробити все відразу, так що ви повинні зробити, коли ви повернетеся є йти на перший урок, який HJKL, режим вставки, бігти в нормальному режимі, і збереження і вихід, і це все, що вам дійсно потрібно, щоб вижити в Vim, і отримати дуже, дуже комфортно з цим. І вже через кілька днів, як тільки ви дуже комфортно з цим ви повинні перейти на більш просунутих операторів руху, більш просунуті руху, і на операторів і так далі і так далі. Я знаю, що я збираюся через багато, але я хочу, щоб ви піддаються багато різних речей. Але у випадку, якщо ви готові прийняти виклик, я можу показати вам, як ви можете помістити все це разом з використанням майже все, що ми тільки що дізналися сьогодні, і ви також можете слідкувати разом, якщо ви хочете, але я створив деякі випадкові вправи. Припустимо, у нас є свого роду реєстр, як це де у вас є ці блоки з іменами людей, будинку, років, і концентрації і ще багато чого, і ви хочете додати новий запис для себе. Який найкращий спосіб для вас, щоб зробити це? Давайте зробимо це, як це. Чому б нам не спочатку виділіть цей блок. Ви збираєтеся вибрати його, і ми можемо натиснути у смикати його, так що тепер ми можемо в основному скопіюйте і вставте цей шаблон перший без необхідності переписувати все це з нуля. Тепер я буду Натисніть J вниз купу разів спуститися, і я буду натисніть р, щоб вставити його. Може бути, я додам деякі додаткові лінії для простору, і скажемо, зараз я хочу змінити своє ім'я з кимось. Тоді я можу піти тут і введіть у C2W як раніше, щоб змінити це ім'я. Боб Джонс, хто знає. Може бути, якщо я хочу змінити в будинок, я можу піти в середину тут і введіть СМР і покласти Cabot House. Тут може бути прикладом того, де ви, можливо, захочете розглянути питання про використання режим заміни, щоб змінити ваш рік закінчення, якщо ви хочете, або ми можемо також використовувати CIW також. Це не має значення. Може бути, ви хочете змінити свій майор. І ось що ви робите. А може бути, я дам вам демонстрацію того, що я міг би зробити якби я був, якщо ви будете продовжувати вивчати більш просунуті команди в Vim тому що ми ледь подряпати поверхню тут, і я міг робити такого роду редагування навіть швидше, ніж я показав вам тут тому що я знаю більше команд, що я не отримав шанс показати вам на сьогоднішній день. Наприклад, якщо я хочу, щоб виділити це я можу зробити це так, рухатися вниз. Я додав свій власний відображення в основному автоматично виділити матеріал для мене і я можу-я не знаю. Я маю на увазі, це просто намагається показати вам, що ви можете дуже, дуже почати редагування речі швидше, особливо коли у вас є всі ці різні поля, і, як правило те, що ви могли б робити це свого роду натиснувши і виділення і потім ввести. Ви можете зробити все відразу, копіювання і вставка, рухатися вгору і вниз між файлом, просто розмежування речі, форматування матеріал. Все це може бути зроблено багато, багато іншого швидко в Vim. Тільки один останній дріб'язок який я думаю, може бути дійсно гарним, який знайти і замінити. Ті з вас, хто використовував Gmail ярлики Ви також знаєте, що якщо ви введете в / вона посилає вас у поле пошуку, і в багато різних додатків в цілому ви виявите, що слеш або, може бути контролювати або слеш щось робити з косою рисою поставить вас в якийсь режимі пошуку і що також в основному походить від Vim суті тому що оператор слеш або команда коса риска дозволяє вводити свого роду рядки, які можна використовувати для пошуку в документі. Ви можете н і капіталу N, щоб перейти до наступної і попередньої виникнення, і ви також можете використовувати щось подібне для пошуку і заміни в документі. Я дам вам демонстрацію на те, що може бути зроблено. Можливо, якщо я хочу знайти всі екземпляри рядка ривком в цьому документі Я можу ввести / ривок, як ви можете бачити в нижньому лівому кутку, і коли я друкую, введіть у ньому підкреслюється всі примірники. Я можу використовувати в основному н стрибати туди і назад між усіма цими різними екземплярами, і припустимо, я хочу для пошуку і заміни ривок з деякою випадковою слова це також в документі. Я можу натиснути: почати друкувати в якійсь команді протягом Vim, деякі команди ось більш складні, ніж пересуватися або видалення або щось на зразок цього. Я буду ввести символ% для позначення, що я хочу використати цю команду замісної на весь документ. Введіть с для заміщення. Це відбувається від PEARL суті. І це наступна команда є досить стандартним команда, що ви знайдете в PEARL замість цього і в інших мовах програмування, що ви будете ймовірно, почати вчитися, як і ви більше інформатику, і я можу в основному використовують / набрати /, тип в слові я хочу знайти і замінити і введіть інший / і введіть в якій би слово, яке я хочу, щоб замінити це слово с. Хто знає, може NyanCat. Я це зроблю, і тоді ви побачите, що все було замінити. Але ви помітите, що є це слово тут. З деяких причин деякі з наших примірників ривком замінені але не всі, і це тому, що те, як цей вид мовою було написано не тільки в Vim, але в інших місцях, що, коли ви виконаєте команду замісної це буде тільки замінити перший примірник цього слова в кожному рядку, так що якщо я хочу насправді замінити всі примірники слова на кожній лінії то я повинен зробити те ж саме, але додати прапор AG в самому кінці, яка виступає за глобальне, а потім, що буде насправді замінити всі примірники. І як тільки ви дізнаєтеся регулярні вирази, там насправді CS50 семінар на регулярних виразах, тому, якщо вам цікаво, про регулярні виразів Ви також можете взяти, що семінар і дізнатися більше. Але, наприклад, скажімо у мене є список імен, як це, і я хочу, щоб змінити його, так замість того, прізвище, кома, ім'я Я хочу, щоб змінити його, щоб він говорить ім'я, простір, прізвище. Ви можете використовувати цю команду прямо тут істотно зробити це для вас, так як ви можете бачити тут ми починаємо з с, що означає, що ми хочемо зробити пошук і заміну, а потім я додав прапор називається \ В, що те, що називається ця магія прапор в Vim, який дозволяє робити регулярні вирази більш легко. Тоді звідти ми в основному збігаються для будь-якого однієї лінії що має вигляд набір слів, кома, пробіл і набору слів або набір букв. \ Ш + в основному означає один або декілька символів, і круглі дужки використовуються для захоплення цих груп так що я можу звернутися до них пізніше. Як ви можете бачити, як тільки ці захоплення 2 кварталах слів , Розділених комами, простір те, що ми хочемо замінити його, я використовувати \ 2 і \ 1 щоб звернутися до слів, які були зняті в команді фактичного знаходять, і так \ 2 ставиться до того, міститься у другому сеті дужок, \ 1 ставиться до того, що міститься в першому наборі дужок, і як ви можете бачити, я ставлю 2 до 1 розділені пробілом , Щоб спробувати перемістити ім'я перед прізвищем. Чи має це сенс? А що я можу зробити, це я можу приховати ці перші, так що я тільки запустити цю команду на цих лініях, і тоді я буду введіть у цій команді. Ви можете бачити, що це робить саме так, як розділилися. І знову ж, це ледь подряпати поверхню, і якщо ви йдете в черговому семінарі вирази, то я впевнений, що ви дізнаєтеся, набагато більше різних речей, які ви можете зробити з регулярними виразами, і це в основному починає натякати на те, що ви дійсно можете зробити з Vim якщо ви дійсно почати, щоб стати майстром цієї справи. Можливо, ви хочете, щоб реорганізувати щось, і ви хочете знайти всі примірники деякої функції, яка слід якусь шаблону іменування. Ви хочете, щоб змінити спосіб, який іменем. Ви можете написати якусь команду, як це зробити, що для вас, і це свого роду гнучкості ви можете отримати в Vim що ви просто не отримаєте в інших текстових редакторах. Це в основному охоплює все, що я хотів, щоб навчити вас сьогодні в сучасному семінару, але знову ж, я дійсно хочу підкреслити, що, якщо ви хочете забрати Vim це правда, що є кілька вище кривої навчання на самому початку. На самому початку вам буде трохи менш продуктивним ніж ви, мабуть, бути інакше, але якщо ви дотримуйтеся його протягом декількох днів або кількох тижнів, залежно від того, як швидко ви дізнаєтеся, ви станете набагато, набагато швидше, і я спробував дати вам демонстрацію від того, що Вім здатний, але я дійсно не отримував шанс показати вам що відбувається, коли я зазвичай, наприклад, в класі я друкую в моїх нотатках з Vim. Це тому, що я можу працювати набагато швидше в Vim, ніж я можу з будь-якої іншої програмою. Це буквально 2 чи 3 раз підвищення продуктивності в Vim порівнянні з іншими програмами, не тільки зі швидкістю редагування тексту, а й у тому, як я можу переміщатися по документу і те, як я можу отримати доступ до інших файлів на моєму комп'ютері і стрибати між ними і так далі і тому подібне. Це просто дуже, дуже величезний поштовх продуктивності. Але коли ви вивчаєте, ви хочете, щоб переконатися, ви дізнаєтеся, одну річ за один раз, і постарайтеся не перевантажувати себе занадто багато різних команд тому що є багато команд і багато різних ярликів ви можете дізнатися в Vim. Ви хочете забрати трохи в той час, і протягом багатьох років поступово накопичити більшу і більшу розуміння Vim. Якщо ви хочете продовжувати, щоб дізнатися більше, це лише деякі з більш складні теми Ви можете продовжити, щоб дізнатися про, і навіть це лише поверхово. Ось кілька популярних плагінів ви можете відчувати себе вільно виїхати і Google їх і пограти з ними, якщо ви хочете, і просто подивитися, які плагіни там. А потім в кінці цієї PowerPoint, я включаю купу посилань до різних ресурсів можна використовувати вчитися. Тут купа різних ланок, які можна використовувати, щоб почати роботу з Vim. Вони мають різні навчальні програми та ще багато чого, І, нарешті, це лише деякі більш просунуті речі, які ви можете використовувати, також перевірити, а також, деякі екранні зліпки і деякі більш просунуті методи в Vim а також деякі різні частини вихідного коду ви можете подивитися на GitHub просто подивитися на конфігураційні файли інших людей або дивитися на плагінами в Vim і так далі і тому подібне. Ось все, що я для вас. [CS50.TV]