atesting.ru Новости Vim как среда разработки python

Vim как среда разработки python

Mark and Fold Code Blocks in VIM

This isn’t as straightforward as you’d want it to be because the code editor does not understand what we are typing but only works on pattern matching. 

So how do we go about folding code inside vim editor? We start with bringing the cursor to where we want to begin the folding and from there we use the to begin marking the code until where we want it to fold.

Highlight Code Vim

Once we have marked the code with the letter , then press to fold the code. The f in the zf stands for fold. how do we open the Code we just press by highlighting the first line of the folded code

Code Folded

To open the code now, we can bring our cursor to the line where the folded code is (as you can see in the above screenshot, the grey colored line which says 6 lines: function1(). Once your cursor is on that line, press where o stands for open.

But the above method is good in cases where the code is small. What if you want to jump through a few hundred lines of code? Let me show you another marking technique that will cut your time in half.

  • Go to the line where you want to start the folding of the code
  • Press the followed by any other letter to name the marking. For example mk
  • Highlight any of the braces within the code and press % to jump directly to the matching close brace.
  • Press

The signals the fold command to look for the “k” mark which we pointed out by typing out mk at the start.

Linux VIM commands to Cut, Copy, and Paste

Copying and pasting are not as straightforward as Ctrl-c Ctrl-v but it’s pretty easy!

In VIM, Copy action is called Yank, and Cut action is called Delete. The paste action continues to be called Paste.

So the shortcuts are named according to these names. For example, if I have to “Yank” something, I can type and the selected text gets yanked.

To cut a text, the command is the same as delete, the letter . So you can understand that even when you delete a piece of text, the VIM editor is actually preparing the text to be pasted somewhere else.

Whatever section the cursor is at, will get copied or deleted. To paste the copied text, just type to paste after the cursor, and to paste before the cursor.

Командный и визуальный режимы Vim

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

Командный режим доступен по вводу символа : в обычном режиме. Он предназначен для построчного редактирования текста с помощью сложных команд, которые могут включать в себя регулярные выражения и даже запуск команд самой операционный системы.

Одна из самых известных команд данного режима — :s. Она предназначена для поиска и замены слов. С ее помощью второй пример из предыдущего раздела можно было бы решить так:

Такая команда заменит первое встреченное в текущей строке слово Windows на Linux. Чтобы заменить все слова Windows на Linux в текущей строке можно использовать модификатор g:

А вместо искомого слова использовать регулярное выражение:

Операцию замены можно расширить на весь файл указав перед командой знак процента:

А можно натравить ее только на нужный диапазон строк:

Или на текст между двумя метками:

Удобнее всего использовать командный режим сочетании с визуальным. Последний представляет собой режим выделения, которого не было в редакторе Vi. Работает он так: вы переходите на строку, с которой хотите начать выделение текста, затем нажимаешь v (или Shift+V для построчного выбора) и выделяете текст с помощью любых стандартных команд перемещения (например, } чтобы выделить текущий абзац). Затем вы можете либо выполнить команду редактирования (например, d, чтобы удалить выделенный текст), либо перейти в командный режим и выполнить над ним более сложную операцию.

Визуальный режим Vim

Вторая из наиболее часто используемых команд — :g. Это встроенный grep, с помощью которого можно искать строки и выполнять над ними действия. Например, следующая команда удалит все строки, содержащие Windows во всем файле:

А такая команда удалит все пустые строки (содержащие только пробелы):

Следующая команда удалит пустые строки (не содержащие ни одного символа) в HTML-таблице:

/,/

/g/^$/d

Строки можно перемещать, например, чтобы переместить все строки, содержащие «Windows», в конец файла, набирай:

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

С ее помощью удобно вставлять в текст содержимое других файлов или вывод команд Unix. Например, так можно вставить в текст содержимое файла todo.txt:

Команда :r поддерживает автодополнение, поэтому вбивать полный путь не придется.

Если добавить к r восклицательный знак — она вставит в текст вывод указанной команды:

Когда ты пишешь статью в «Хакер» с кучей цитат из вывода команд, такая функция становится просто незаменимой.

Vim позволяет не только читать вывод команд Unix, но и отправлять текст им на вход. Например, следующая команда отсортирует строки с 1 по 10 с помощью sort:

Отсортировать весь файл:

Прогнать файл через форматтер fmt:

Конечно же, все это работает в том числе в визуальном режиме.

Vim modes

There are some arguments as to how many modes that Vim has, but the modes you’re most likely to use are command mode and insert mode. These modes will allow you to do just about anything you need, including creating your document, saving your document and doing advanced editing, including taking advantage of search and replace functions.

Command mode

This is the default mode that you’ll be in once you open Vim. If you’re in a different mode and want to go back to command mode, just hit the Escape key. This mode allows you to use Vim commands and move through your document. From command mode, you can also use last-line commands, which generally start with the use of a colon. For example, saves your file and allows you to exit Vim.

Insert mode

This mode allows you to enter text into your document. You can enter insert mode by pressing the key. Keep in mind that to save your document, you’ll need to go back to command mode since only text input is allowed in this mode.

Split VIM Code Window

You can either Vertically or Horizontally split the VIM window and edit multiple code files without moving away from the other. How? Let’s have a look.

The and commands allow us to browse through files and open any file in the split section of the terminal. But if you just want to open the file, you can use the or command.

VERTICAL SPLIT
:vsplit <filename>

OR 

:vsp <filename>

HORIZONTAL SPLIT
:split <filename>

OR 

:sp <filename>

The above command will split the terminal vertically and open the other file for you.

Vim Split Windows

Command Action
Ctrl-w ← ORCtrl-w h Focus on the left adjacent split
Ctrl-w →OR Ctrl-w l Focus on the right adjacent split
Ctrl-w ↓ ORCtrl-w j Focus on the bottom adjacent split
Ctrl-w ↑ ORCtrl-w k Focus on the top adjacent split
Ctrl-w n+OR Ctrl-w n– Increase or decrease the size of the split by n lines

If you’re working through an SSH client software like Terminus to connect to your Linux server, using the default VIM commands to switch splits will simply close the connection.

Because Ctrl-W is the default shortcut to close tabs on Terminus and on many other Windows software. So how do we go about this?

VIM allows us to remap keys to save keystrokes and also to avoid conflicts.

Как стать продвинутым вимером

1. Изу­чи­те рус­ско­языч­ную доку­мен­та­цию и попро­буй­те коман­ды, кото­рые могут при­го­дить­ся в рабо­те. Если что-то не пони­ма­е­те или счи­та­е­те какие-то коман­ды лиш­ни­ми — не трать­те на них вре­мя. Vim необъ­ятен, и боль­шин­ство его воз­мож­но­стей вам не пона­до­бят­ся — они нуж­ны для спе­ци­фич­ных задач. 

2. Про­чти­те спи­сок реко­мен­до­ван­ной лите­ра­ту­ры. Во вре­мя чте­ния помни­те, что луч­ше все­го мате­ри­ал усва­и­ва­ет­ся в том слу­чае, если под­кре­пить его практикой. 

3. Выбе­ри­те пла­ги­ны для инди­ви­ду­аль­ной настрой­ки редак­то­ра. Это для тех, кому деск­топ­ная вер­сия Vim понра­ви­лась боль­ше пла­ги­на в VS Code. 

4. При­смот­ри­тесь к эрго­но­мич­ным кла­ви­а­ту­рам с настра­и­ва­е­мым рас­по­ло­же­ни­ем кла­виш. Воз­мож­но, какая-то из них помо­жет быст­рее осво­ить воз­мож­но­сти Vim. 

Текст:

Саша Бабас­кин

Редак­тор:

Мак­сим Ильяхов

Кор­рек­тор:

Ира Михе­е­ва

Иллю­стра­тор:

Даня Бер­ков­ский

Вёрст­ка:

Маша Дро­но­ва

Соц­се­ти:

Олег Веш­кур­цев

Как вый­ти из Vim:

:х или :q! и Enter

Текстовый редактор Vim

По началу Вим оставляет весьма странные ощущения, ведь вы попросту не можете понять, как вообще работает этот редактор. То он вообще не реагирует на нажатия клавиш, то делает какие-то странные вещи. Например, вы пытаетесь написать door, а в результате получаете or да еще и в новой строке. Удалив это вы вновь пытаетесь ввести новое слово, но теперь редактор ведет себя адекватно и вы видите введенное вами слово, а потом снова какие-то непонятки.

Спустя несколько попыток разобраться, как это работает, и бесчисленное количество матерных слов ты идешь в интернет и узнаешь, что Vim — двухрежимный редактор. Писать текст здесь можно только в режиме ввода (INSERT), для перехода в который следует нажать кнопку i или Insert.

Основной же режим, для выхода в который используется Esc, здесь предназначен для ввода, как тебе на первый взгляд кажется, хоткеев. Причем состоять они могут всего из одной клавиши: w — передвигает курсор к следующему слову, 0 — в начало строки, $ — в конец строки, A переводит курсор в конец строки и переключает редактор в режим ввода, u — аналог Ctrl-Z в нормальных редакторах.

Погуглив еще немного, ты обнаруживаешь, что есть также «хоткеи» из двух и более последовательных нажатий. Такие, как, например, dd, который удаляет всю строку и dw, удаляющий слово, gg и GG, которые перемещают курсор в начало и конец документа.

Немного привыкнув, ты уже можешь кое-как прыгать между режимами и вводить эти странные хоткеи — они даже начинают казаться тебе удобными, но один вопрос все-таки тебя не покидает:

«Хоткеи» Vim действительно удобны благодаря своей лаконичности, но разве необходимость переключения между режимами не убивает все их удобство? Разве не проще нажимать пусть и требующие больше движений горячие клавиши в нормальных редакторах, чем мотаться взад-вперед между режимами? Да, может быть сорок лет назад, когда на клавиатурах не было Ctrl и Alt, это и было оправдано, но сейчас-то зачем?

Так и заканчивает знакомство с Vim среднестатистический пользователь. Некоторое время он, конечно, еще потратит на то, чтобы найти выход, но затем забудет как страшный сон и вернется к своему любимому Sublime. А уж в условиях сурового сервера и nano сойдет.

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

23 мая 2017 года вопрос «Как выйти из Vim набрал один миллион просмотров на StackOverflow»

Work With Multiple Files in Vim

Most of us programmers are used to working with multiple files at the same time. Our GUI text editors give us tabs that allow switching between files while all stay open simultaneously. Even though there are a few keyboard shortcuts to play around with those tabs, it’s nowhere compared to what VIM can do.

:tabedit <tab key to scroll through files in directory>

Tabedit Vim Commands

The best part? You don’t touch the mouse whatsoever. How do you move around the files? With gt or gT to switch tabs forward or backward respectively. Also :tabfirst and :tablast will let you jump back and forth from the first to the last tabs that are currently open.

But if you want to open all the files directly at the start, just type:

vim -p source_file1.py source_file2.py source_file3.py 

Выводы

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

Как и у командной строки, у Вим очень высокий порог вхождения. Его нельзя просто запустить и начать использовать. Сначала вы должны понять, как он работает, на каких принципах базируется и почему он именно такой, какой есть. Затем вам придется заучить множество команд, попрактиковаться, набить руку и только тогда Vim станет для вас действительно удобным, и вы уже не променяете его ни на какой другой редактор.

По статистике одной фирмы пользователей Vim берут на работу чаще, чем остальных

Зависит от того, насколько часто вы работаете с текстовыми данными: пишите статьи, код, редактируете HTML. Vim может сделать эту работу намного более эффективной. При этом навыки пригодятся и при работе в других программах — плагины с режимом Вим есть почти для всех популярных сред разработки. Я, к примеру, использую плагин IdeaVim в Android Studio. Он позволяет получить мощь команд Vim, не отказываясь от богатых возможностей среды Idea.