A eulogy for Vim

Vim Script's codebase shrank from 6.38B to 5.18B bytes, while its weighted‐star score dipped from 1.15M to 1.12M—both hit record‐low monthly deltas. #VimScript #github

С Vim удобно программировать (часть III)

Это окончание статьи о REPL на Vim. Содержит пару простых примеров применения разработки автора - работа на Ruby с Sinatra и работа с Git.

https://habr.com/ru/articles/1026138/

#Vim #vimscript #bashскрипт

С Vim удобно программировать (часть III)

Приведем пару простых примеров для иллюстрации изложенного здесь и здесь. 1 Ruby + Sinatra Sinatra - фреймворк для Ruby , позволяющий создавать несложные сайты. Не буду загромождать статью изложением...

Хабр

С Vim удобно программировать (часть I)

Статья о том, как своими руками в Vim сделать универсальный (т.е. работающий для разных языков программирования) REPL (от англ. read-eval-print loop — цикл “чтение — вычисление — вывод”), да и просто сделать этот редактор более удобным.

https://habr.com/ru/articles/1022400/

#vim #vimscript #bashскрипт #bash #linux #git

С Vim удобно программировать (часть I)

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

Хабр
@jenesuispasgoth Spoiler : ils sont compatibles.
#neovim est compatible #vimscript
terminal buffer를 통한 pwd sync

이 글은 Vim의 `:terminal` 커맨드를 활용하여 터미널 버퍼를 효율적으로 사용하는 방법에 대한 여정을 담고 있습니다. `:terminal`로 열리는 터미널 버퍼는 `Terminal-Job`과 `Terminal-Normal` 모드를 지원하며, `tmap`을 통해 제어할 수 있습니다. 특히 `terminal-api`를 이용하면 터미널 모드에서 Vimscript를 호출하여 Vim의 기능을 확장할 수 있습니다. 글에서는 터미널 버퍼의 현재 디렉터리를 Vim의 현재 디렉터리와 동기화하는 방법, 그리고 이를 자동화하는 과정을 상세히 설명합니다. `.bashrc` 설정과 Vimscript 함수를 결합하여 터미널에서 파일 시스템을 탐색할 때마다 Vim의 현재 디렉터리도 함께 변경되도록 구성합니다. 또한, 내장 셸(`:sh`)과의 전환, REPL 환경에서의 사용, 일회성 명령 실행 등 다양한 사용 사례를 고려하여 터미널 사용 모드를 전환하는 기능까지 구현합니다. 이 포스팅은 Vim의 터미널 기능을 깊이 있게 활용하고자 하는 사용자에게 유용한 팁과 실질적인 설정 방법을 제공하며, Vim과 터미널을 더욱 긴밀하게 통합하여 생산성을 높이는 데 기여합니다.

Hackers' Pub
vim popup으로 floating window를 사용해보자

Vim 8 이상에서 제공하는 `popup` 기능을 활용하여 플로팅 윈도우를 만드는 방법을 소개합니다. 특히 `popup_menu()`를 사용하여 리스트를 팝업 메뉴로 표시하고, `callback` 함수로 팝업 종료 동작을 변경하거나 `filter`를 통해 키 입력을 제어하는 방법을 설명합니다. Less 바인딩, visual mode, yank 기능을 포함한 `filter` 예시를 통해 `echomsg` 디버깅 내용을 쉽게 복사할 수 있도록 합니다. 또한, Ex 명령어나 시스템 명령의 결과를 플로팅 윈도우에서 편리하게 확인하는 함수를 제시하고, 자주 사용하는 명령에 대한 키 매핑 설정 방법을 안내합니다. Neovim에서는 플로팅 윈도우를 더 편리하게 사용할 수 있으며, Lua 스크립트를 통해 동일한 기능을 구현하는 방법을 소개합니다. 이를 통해 Vim과 Neovim에서 플로팅 윈도우를 활용하여 작업 효율성을 높일 수 있습니다.

Hackers' Pub
🌘 Neovim 套件管理:深入解析啟動與載入機制
➤ 解鎖 Neovim 外掛程式的強大管理潛力
https://neovim.io/doc/user/pack.html#vim.pack
本文深入探討 Neovim 的套件管理系統,詳細說明如何透過「套件」結構來組織、載入與管理外掛程式。文章闡述了自動載入(start 目錄)與按需載入(opt 目錄)的區別,以及 Neovim 如何透過 `runtimepath` 和 `packpath` 搜尋與載入檔案。同時,也介紹了 `nvim_list_runtime_paths()` 和 `nvim_get_runtime_file()` 等 API 的使用,並提供實際操作範例,指導使用者如何解壓縮套件、建立目錄結構,以及使用 `:packadd` 命令載入選用套件,最後提及了內部套件管理器的開發進度。
+ 終於有人把 Neovim 的套件系統講清楚了,以前一直搞不懂 `start` 和 `opt` 的差別。
+ 寫得真詳細,感謝作者分享這麼多實用
#Neovim #套件管理 #Vimscript #Lua #tree-sitter
Pack - Neovim docs

Neovim user documentation

Getting NeoVIM to not read anything VIM finds seems impossible, but it is easy to make the vimscript a noop with `if has('nvim') | finish | endif`. The similar Lua versions don't get read by VIM, so that direction isn't a problem.

I implemented Decasify in a single repo as a #vimscript plugin that loads in #vim and a #lua plugin that leads in #neovim, the former depending on the CLI and the latter depending on the Lua Rock. Also there is now an override so NeoVIM can go the other way too.

So, hier hat der Regen jetzt Scheinbar aufgehört. Den Rest #refactoring mache ich morgen. Interessanterweise ist jetzt passiert, was wir alle schon lange befürchtet haben: ich will morgen mein erstes eigenes #vimscript für #vim und #neovim #nvim versuchen zu schreiben!