4 Answers2025-09-03 06:57:19
I love tinkering with editors, and I’ll say bluntly: yes, 'mvim' (MacVim) can open huge files, but whether it feels snappy depends on how you use it. On my MacBook, when I try to fling a 200MB log into MacVim with my full plugin stack and syntax highlighting on, it chokes — scrolling becomes stuttery, search gets slow, and the GUI redraws are the bottleneck. The trick is to treat huge files like special cases, not daily docs.
When I need speed I launch a bare session: vim -u NONE -N filename (or open MacVim with an equivalent minimal config). Once inside I flip off features that are expensive: :syntax off, :set noswapfile noundofile nowrap lazyredraw, and turn off folding and plugins that do realtime parsing. That instantly feels smoother. If I’m only grepping or viewing, I often use command-line helpers like head/tail/grep or split the file into chunks with split -l, edit the chunk, then stitch back together. For truly enormous files or binary blobs I’ll use specialized tools, but for plain text, MacVim with a pared-down runtime is surprisingly capable. It’s a small ritual for me now — treat the file with respect and you won’t regret opening it in 'mvim'.
4 Answers2025-09-03 18:19:40
Okay, here’s the short version first, but then I’ll expand — I love geeking out about editor choices. For plugins, Neovim is the one that pushed the ecosystem forward: it brought a clean RPC-based plugin model, first-class async job handling, and a modern Lua API that plugin authors love. That means a lot of recent plugins are written in Lua or expect Neovim-only features like virtual text, floating windows, and extmarks. The result is snappier, more feature-rich plugins that can do things without blocking the UI.
If you use 'm vim' (think classic Vim or MacVim builds), you still get a massive, mature plugin ecosystem. Many plugin authors keep compatibility with Vim, and core functionality works fine — but some newer plugins either require extra patches, rely on Vim being compiled with specific features (job control, Python/Ruby/Node support), or are Neovim-only because they use the Lua or RPC APIs. Practically, that means your favorite long-lived plugins like statuslines, file explorers, and linters usually work on either, but cutting-edge integrations (native LSP clients, modern completion engines written in Lua) will feel more at home in Neovim.
My take: if you want modern plugins, async performance, and future-facing features, Neovim wins. If you prefer a familiar Vim experience, GUI comforts on macOS, or rely on plugins that haven’t migrated, 'm vim' still serves well. I ended up switching because I wanted Lua-based configs and non-blocking LSP, but I still keep a light Vim profile around for quick GUI sessions.
5 Answers2025-09-03 05:08:31
Oh wow, trimming 'mvim' startup is one of those tiny joys that makes the whole day smoother. I usually start by profiling so I know what's actually slow: run mvim --startuptime ~/vim-startup.log and open that log. It quickly shows which scripts or plugins dominate time. Once I know the culprits, I move heavy things into autoload or optional plugin folders so they only load when needed.
Next, I use lazy-loading with a plugin manager like 'vim-plug' (Plug 'foo', { 'on': 'SomeCommand' } or 'for': ['python', 'javascript']). Put plugins you need immediately in 'start' and everything else in 'opt' or load by filetype. Also disable unnecessary providers (let g:loaded_python_provider = 0, let g:loaded_ruby_provider = 0) if you don't use them — that shave off seconds. Finally, keep UI tweaks minimal for GUI start: font fallback, complex statuslines and external helpers (like large LSPs) can wait until you open a project. After a few iterations of profile → defer → test, 'mvim' feels snappy and more pleasant to use.