Как выбрать редактор, и почему нужно выбрать NeoVim?

от автора

Часто мы тратим время на включение редакторов больше, чем тратим на исправление или написание какого-то однострочного скрипта. Я считаю что эту проблему можно быстро решить, ведь для этого и существуют консольные редакторы

Предистория

Каждый опытный программист печётся о том, как бы побыстрее закончить начатую им работу. Очень часто заказчик не понимает сколько времени и труда тратят разработчики.
Я как учащийся понимаю, что 2 года в программировании — ничего, ибо люди работают по 10 лет и едва ли получают звания Сеньоров, ибо в наше время нужно знать всё больше и больше. Главный инструмент опытныго или начинающего разработчика — редактор кода. Именно он позволяет сэкономить время и как можно быстрее приступить к изучению материала.
Всегда приятно, когда ты можешь "летать" по коду. Ты знаешь что и где находится, а если не знаешь, то можешь найти. Именно это предает нам сил и оперативности в разработке.

Какой же редактор выбрать?

Редакторов в 2020 году существует огромное количество: VSCode, Sublime text, Atom, Vim, Neovim, Emacs, NotePad++, Brackets, Nano и ещё многие другие.

Почему именно ваше внимание должен привлечь NeoVim?

Я думаю, что отвечу на этот вопрос быстро. Вне зависимости от того, на какой ОС вы работаете, вы всегда сталкивались с проблемой "Чёрт, сейчас надо быстро написать (или исправить) небольшой кусок кода" и тут начинается… Вы открываете редактор (пусть это будет VSCode) он включается через 5 секунд, прогружается ещё 3 секунды, открывает папку с файлом 2 секунд, (предположим что пишем что-то на Python, для простоты примера) загружает обновления для дополнений и сами дополнения около 10 секунд. Вы только что потратили 20 секунд своей жизни (при условии что сборка ПК у вас средняя, допустим что это будет ноутбук, который просто удобно использовать не только дома) чтобы написать или исправить какую-то мелочь.

Теперь посмотрим на ситуацию с другой стороны: открыть терминал — секунда ровно, открыть NeoVim с дополнениями — секунда. 2 секунды итого (или 5, если не особо торопиться). NeoVim открывает большие файлы за секунды. Он удобен в использовании. Многие скажут вам: "Это апдейт Vim’а, из которого я даже выйти не могу" — на что я отвечу вам, что эти хоткеи — лучшее, что дал Бог людям.

Кратко о передвижении и хоткеях NeoVim

j — вниз
k — вверх
h — влево
l — вправо

Редактирование

i — войти в режим редактирования с текущего положения курсора (insert)
a — войти в режим редактирования со следующего символа (append)
I — войти в режим редактирования с начала строки
A — войти в режим редактирования с конца строки
dd — удалить строку (delete)
dw — удалить слово (delete a word)
dl — удалить символ (delete a letter)
o — режим редактирования (insert) на новой строке, что ниже данной
O — режим редактирования на новой строке, что выше данной
Также, каждый delete можно совмещать с цифрой: 7dl — удалит 7 символов
Чтобы скопировать что-то нужно перейти в режим visual и выделить что нужно скопировать, а затем нажать y (yank)
p — вставить из буфера (внутреннего) (paste)

Перемещение

w — переместиться на начало следущего слова (word)
W — переместиться на начало следующего слова пропуская скобки, кавычки и далее
b — переместить в начало слова (или начало предыдущего слова) (скобки, кавычки считаются за слово) (backword)
B — переместиться в начало слова (Скобки, кавычки не считаются за слово)
e — перейти в конец слова (следующего слова) (end of the word)
E — перейти в конец слова (после скобок и всего прочего)
gg — перейти в начало файла
G — перейти в конец документа
^ — начало строки
$ — конец строки
/ — поиск внизу файла (n — для следующего найденного; N — для предыдущего найденного)
? — поиск вверху файла

После просмотра этих скучных комбинаций клавиш

Теперь представьте, вы можете перемещаться по коду через 50 слов сразу, нажав 3 клавиши. Вам не нужно целиться мышкой по тегам или операторам. Вы можете сразу просто взять и перепрыгнуть куда вам нужно. Поиск — одна клавиша, а не Ctrl+F, как это придумано везде. До стрелок впредь не нужно тянуться.

Хвастовство

Только благодаря NeoVim я смог увелеичить свою производительность в 3-4 раза (естественно, относительно времени). NeoVim — легкий способ писать код и не только. Многие как будто намеренно нагоняют сложность на все Vim-подобные редакторы. Я же наоборот хочу убедить читателя, что нет ничего такого, в том чтобы что-то выучить, а затем использовать это эффективно.

Было бы нечестно если бы я не указал ссылку на этот замечательный редактор
//Ссылка не открывается, добавляю GitHub проектаприм. модератора

Как говорил Тим Бернерс-Ли:

Магия перестаёт существовать после того, как вы понимаете, как она работает.

На всякий случай оставлю тут конфигурацию, которую я использую:

call plug#begin()  " FuzzyFinder (для быстрого поиска) Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } Plug 'junegunn/fzf.vim' " NERDTree - быстрый просмотр файлов Plug 'preservim/nerdtree' " Сoc - автодополнение  Plug 'neoclide/coc.nvim', {'branch': 'release'} " Дополнения для NERDTree Plug 'tiagofumo/vim-nerdtree-syntax-highlight' Plug 'scrooloose/nerdcommenter' " Дополнение для Git, а также иконки для NERDTree Plug 'airblade/vim-gitgutter' Plug 'ryanoasis/vim-devicons' " Линия статуса Plug 'itchyny/lightline.vim' " Темы Plug 'joshdick/onedark.vim' Plug 'cocopon/iceberg.vim' " Проверка Синтаксиса Plug 'scrooloose/syntastic'  " Плагин автозавершения "Plug 'Valloric/YouCompleteMe' " Поддержка Python "Plug 'klen/python-mode' call plug#end()  " Делаем Vim более функциональным set nocompatible set t_Co=256  " Делаем линейку для показывания на какой мы строке и сколько расстояния до " друних строк в **NeoVim** set number set ruler  " Комбинация клавиш jkl - действует как Escape в режиме Insert inoremap jkl <ESC>  " Делаем так, чтобы навигация работала на русском языке nmap о j nmap л k nmap р h nmap д l nmap ш i nmap ф a nmap в d  " В нормальном режиме Ctrl+n вызывает :NERDTree nmap <C-n> :NERDTreeToggle<CR> vmap ++ <plug>NERDCommenterToggle nmap ++ <plug>NERDCommenterToggl  let g:NERDTreeGitStatusWithFlags = 1 let g:NERDTreeIgnore = ['^node_modules$']  " Тема для **NeoVim** syntax on colorscheme iceberg  " Линия статуса: конфигурация set noshowmode " Табличка --INSERT-- больше не выводится на экран set laststatus=2 let g:lightline = {       \ 'colorscheme': 'iceberg',       \ 'active': {       \   'left': [ [ 'mode', 'paste' ],       \             [ 'gitbranch', 'readonly', 'filename', 'modified' ] ]       \ },       \ 'component_function': {       \   'gitbranch': 'fugitive#head'       \ },       \ } 

ссылка на оригинал статьи https://habr.com/ru/post/486948/


Комментарии

Добавить комментарий

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