Я переключаюсь с VS Code на Vim
С тех пор, как я начал профессионально программировать в 2015 году, я слышал много хорошего о VIM. Люди, которые используют его, клянутся его эффективностью и повышением производительности, которое оно обеспечивает. Я тоже всегда считал Vim крутым, но что мешало мне попробовать его, так это кривая обучения. И с VS Code, делающим все, а затем и кое-что за меня, мне казалось, что я никогда этого не сделаю.
Во-первых, я не сомневаюсь, что когда дело доходит до «чистой» эффективности и скорости написания/редактирования кода, Vim сделает меня намного быстрее. Тем не менее, я считаю, что когда дело доходит до программирования, скорость набора текста никогда не является узким местом, а скорость мышления. Несмотря на мое личное мнение, я хочу попробовать его в течение следующих 30 дней и посмотреть, не упустил ли я что-то. Но прежде чем сделать это, я хочу упомянуть, какую работу я делаю и что я считаю решающим для меня в редакторе.
Что я делаю?
Ну, моя работа в основном состоит из работы с бэкенд-сервисами, написанными на TypeScript. Обычно мне приходится открывать и работать над несколькими проектами одновременно, а также открывать несколько окон терминала по разным путям. Также задействовано множество тестов и генерация кода GraphQL.
Что для меня важно в редакторе?
Вот некоторые из вещей, которые я действительно ценю в редакторе.
- Он должен показывать мне ошибки и предупреждения linting
- Я должен иметь возможность легко отслеживать, какие буферы/файлы открыты, и быстро переключаться между ними.
- Он не должен мешать мне во время работы, чтобы я мог сосредоточиться на работе.
- Приветствуется хорошая интеграция с git
- Он должен поддерживать языковой сервер для машинописного текста и такие функции, как «перейти к определению», «найти все ссылки».
- Должен поддерживать форматирование кода
- И, наконец, он должен быть быстрым, чтобы я мог держать несколько экземпляров открытыми без замедления.
- Это позволяет вам напрямую работать в контейнерах докеров, используя расширение Dev Container или расширение WSL для работы в среде Linux, если вы используете Windows, и расширение Remote Explorer для Ssh.
- live share для парного программирования
- Много-много расширений почти для всех языков
- Emmet и поддержка расширений сниппетов
- Расширение GitHub CoPilot
- Расширения с RestClients
- И многое другое, чем я не пользуюсь, но могу, если захочу, с минимальной настройкой.
Начальная настройка:
Итак, я установил NeoVim, выполнил несколько руководств, чтобы включить некоторые основные настройки, такие как relative line numbers, установить VimPlugдля управления плагинами, установить cocдля языковых серверов, некоторые другие расширения и NERDTree, чтобы сделать его похожим на VSCode. Вот мой init.vim для всех, кому интересно:https://github.com/osamaishtiaq/dev-settings/blob/main/init.vim
Ниже показано, как выглядит моя текущая установка
Языковой сервер для машинописного текста работает хорошо, почти так же хорошо, как код VS (почти). Я рад сообщить, что функции «перейти к определению» и «найти все ссылки» прекрасно работают. Linting также работает, так как я вижу количество ошибок в правом нижнем углу строки состояния, однако это не идеально, потому что я редко вижу информационное всплывающее сообщение при наведении. Для этого я должен использовать messagesкоманду. Я также использую Tmuxдля работы с несколькими окнами терминала, и я установил Itermтерминал, потому что я слышал, что он имеет лучшую поддержку цвета, чем терминал Macos по умолчанию. Я удалил VS Code, и если все пойдет хорошо, мне, возможно, больше никогда не придется его устанавливать.
Обновление (14 декабря 2022 г.):
Мне пришлось переустановить VS Code… Причина в том, как работают буферы в vim, и на данный момент я не могу найти исправление. NERDTree не выделяет, какие буферы открыты в данный момент, и я не смог найти хороший способ увидеть, какие файлы были изменены, просто взглянув на NERDTree или любое другое место. Поэтому вместо того, чтобы полностью использовать Vim, я установил расширение Vim для VS Code в качестве резервной копии. Я попытаюсь использовать Vim, но если что-то просто не работает и у меня нет времени это исправить, я временно вернусь к VS Code с расширением Vim. Больше обновлений, чтобы следовать.

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































