vim-easy-align VS LanguageClient-neovim

Compare vim-easy-align vs LanguageClient-neovim and see what are their differences.

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
vim-easy-align LanguageClient-neovim
21 11
4,027 3,538
- -
0.0 0.0
almost 4 years ago 6 months ago
Vim Script Rust
- MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

vim-easy-align

Posts with mentions or reviews of vim-easy-align. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-05.
  • How to align columns using tabs automatically? (Preferably using `mini.align`)
    2 projects | /r/neovim | 5 Jul 2023
  • In mini.align, is there a way to align by specific occurrence of a character?
    2 projects | /r/neovim | 12 Jan 2023
    As part of my journey to moving to Lua, I'm trying to move from vim-easy-align to mini.align.
  • Markdown format table
    5 projects | /r/neovim | 16 Oct 2022
    Not exactly what you are asking for, but table formatting is usually enough with general purpose align plugins: - mini.align - junegunn/vim-easy-align - godlygeek/tabular
  • mini.align - align text interactively (like 'vim-easy-align', but in Lua and slightly different mechanics)
    3 projects | /r/neovim | 22 Sep 2022
    I am happy to announce the release of mini.align - module of mini.nvim for aligning text interactively (with or without live preview). This is mostly designed after junegunn/vim-easy-align, but is implemented in Lua and has slightly different alignment specification and user interaction lifecycle.
  • My Vim Configurations
    3 projects | dev.to | 26 Jul 2022
    call plug#begin() " The default plugin directory will be as follows: " - Vim (Linux/macOS): '~/.vim/plugged' " - Vim (Windows): '~/vimfiles/plugged' " - Neovim (Linux/macOS/Windows): stdpath('data') . '/plugged' " You can specify a custom plugin directory by passing it as the argument " - e.g. `call plug#begin('~/.vim/plugged')` " - Avoid using standard Vim directory names like 'plugin' " Make sure you use single quotes " Shorthand notation; fetches https://github.com/junegunn/vim-easy-align Plug 'junegunn/vim-easy-align' " Any valid git URL is allowed Plug 'https://github.com/junegunn/vim-github-dashboard.git' " Multiple Plug commands can be written in a single line using | separators Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' " On-demand loading Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } Plug 'tpope/vim-fireplace', { 'for': 'clojure' } " Using a non-default branch Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' } " Using a tagged release; wildcard allowed (requires git 1.9.2 or above) Plug 'fatih/vim-go', { 'tag': '*' } " Plugin options Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' } " Plugin outside ~/.vim/plugged with post-update hook Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } " vim-airline " display the statusline at the bottom of the vim Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' " ale " check syntax on the contents of text buffers Plug 'dense-analysis/ale' " Initialize plugin system call plug#end() "================ " General settings "================ syntax on set cursorline set backspace=indent,eol,start " Show line numbers " set number " Show command in bottom bar " set showcmd " Visual autocomplete for command menu set wildmenu " Redraw only when necessary, speeds up macros set lazyredraw set hlsearch " system clipboard set clipboard=unnamed " remove all trailing whitepsace " https://vim.fandom.com/wiki/Remove_unwanted_spaces au BufWritePre * :%s/\s\+$//e " The NERD Tree noremap 1 1gt noremap 2 2gt noremap 3 3gt noremap 4 4gt noremap 5 5gt noremap 6 6gt noremap 7 7gt noremap 8 8gt noremap 9 9gt noremap 0 :tablast au BufNewFile,BufRead * set expandtab au BufNewFile,BufRead * set shiftwidth=4 au BufNewFile,BufRead * set softtabstop=4 au BufNewFile,BufRead * set tabstop=4 "=========================== " Language specific settings "=========================== " Python au BufNewFile,BufRead *.py set expandtab au BufNewFile,BufRead *.py set shiftwidth=4 au BufNewFile,BufRead *.py set softtabstop=4 au BufNewFile,BufRead *.py set tabstop=4 " Markdown au BufNewFile,BufRead *.md set expandtab au BufNewFile,BufRead *.md set shiftwidth=4 au BufNewFile,BufRead *.md set softtabstop=4 au BufNewFile,BufRead *.md set tabstop=4
  • Whenever I'm looking for plugins these days [OC]
    29 projects | /r/neovim | 7 Jul 2022
  • what vimL plugins are you still using?
    26 projects | /r/neovim | 1 Jul 2022
    vim-easy-align - I haven't yet found a Lua-based equivalent with the same flexibility.
  • align.nvim - A minimal plugin to align your lines to a certain character, string, or Lua pattern
    3 projects | /r/neovim | 6 Jun 2022
    Also does this plugin support operator-pending mode like vim-easy-align does? For instance doing gaip, ("go align in paragraph; commas) in normal mode aligns all commas in the current paragraph.
  • What are your must-have vim/nvim extensions?
    53 projects | /r/vim | 9 May 2022
    junegunn/vim-easy-align - Aligns text. Accepts text objects.
  • Just installed coc for nvim, trying to get setup for c++ and having 'UnhandledRejection' error
    2 projects | /r/neovim | 29 Mar 2022
    call plug#begin() " Make sure you use single quotes " Shorthand notation; fetches https://github.com/junegunn/vim-easy-align Plug 'junegunn/vim-easy-align' " Nerdtree directory Plug 'https://github.com/preservim/nerdtree' " CoC text completion Plug 'neoclide/coc.nvim', {'branch': 'release'} " Initialize plugin system call plug#end() " Set internal encoding of vim, not needed on neovim, since coc.nvim using some " unicode characters in the file autoload/float.vim set encoding=utf-8 " TextEdit might fail if hidden is not set. set hidden " Some servers have issues with backup files, see #649. set nobackup set nowritebackup " Give more space for displaying messages. set cmdheight=2 " Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable " delays and poor user experience. set updatetime=300 " Don't pass messages to |ins-completion-menu|. set shortmess+=c " Always show the signcolumn, otherwise it would shift the text each time " diagnostics appear/become resolved. if has("nvim-0.5.0") || has("patch-8.1.1564") " Recently vim can merge signcolumn and number column into one set signcolumn=number else set signcolumn=yes endif " Use tab for trigger completion with characters ahead and navigate. " NOTE: Use command ':verbose imap ' to make sure tab is not mapped by " other plugin before putting this into your config. inoremap \ pumvisible() ? "\" : \ check_back_space() ? "\" : \ coc#refresh() inoremap pumvisible() ? "\" : "\" function! s:check_back_space() abort let col = col('.') - 1 return !col || getline('.')[col - 1] =~# '\s' endfunction " Use to trigger completion. if has('nvim') inoremap coc#refresh() else inoremap coc#refresh() endif " Make auto-select the first completion item and notify coc.nvim to " format on enter, could be remapped by other vim plugin inoremap pumvisible() ? coc#_select_confirm() \: "\u\\=coc#on_enter()\" " Use `[g` and `]g` to navigate diagnostics " Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. nmap [g (coc-diagnostic-prev) nmap ]g (coc-diagnostic-next) " GoTo code navigation. nmap gd (coc-definition) nmap gy (coc-type-definition) nmap gi (coc-implementation) nmap gr (coc-references) " Use K to show documentation in preview window. nnoremap K :call show_documentation() function! s:show_documentation() if (index(['vim','help'], &filetype) >= 0) execute 'h '.expand('') elseif (coc#rpc#ready()) call CocActionAsync('doHover') else execute '!' . &keywordprg . " " . expand('') endif endfunction " Highlight the symbol and its references when holding the cursor. " autocmd CursorHold * silent call CocActionAsync('highlight') " Symbol renaming. nmap rn (coc-rename) " Formatting selected code. xmap f (coc-format-selected) nmap f (coc-format-selected) augroup mygroup autocmd! " Setup formatexpr specified filetype(s). autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') " Update signature help on jump placeholder. autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') augroup end " Applying codeAction to the selected region. " Example: `aap` for current paragraph xmap a (coc-codeaction-selected) nmap a (coc-codeaction-selected) " Remap keys for applying codeAction to the current buffer. nmap ac (coc-codeaction) " Apply AutoFix to problem on the current line. nmap qf (coc-fix-current) " Run the Code Lens action on the current line. nmap cl (coc-codelens-action) " Map function and class text objects " NOTE: Requires 'textDocument.documentSymbol' support from the language server. xmap if (coc-funcobj-i) omap if (coc-funcobj-i) xmap af (coc-funcobj-a) omap af (coc-funcobj-a) xmap ic (coc-classobj-i) omap ic (coc-classobj-i) xmap ac (coc-classobj-a) omap ac (coc-classobj-a) " Remap and for scroll float windows/popups. if has('nvim-0.4.0') || has('patch-8.2.0750') nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" endif " Use CTRL-S for selections ranges. " Requires 'textDocument/selectionRange' support of language server. nmap (coc-range-select) xmap (coc-range-select) " Add `:Format` command to format current buffer. command! -nargs=0 Format :call CocActionAsync('format') " Add `:Fold` command to fold current buffer. command! -nargs=? Fold :call CocAction('fold', ) " Add `:OR` command for organize imports of the current buffer. command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport') " Add (Neo)Vim's native statusline support. " NOTE: Please see `:h coc-status` for integrations with external plugins that " provide custom statusline: lightline.vim, vim-airline. set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} " Mappings for CoCList " Show all diagnostics. nnoremap a :CocList diagnostics " Manage extensions. nnoremap e :CocList extensions " Show commands. nnoremap c :CocList commands " Find symbol of current document. nnoremap o :CocList outline " Search workspace symbols. nnoremap s :CocList -I symbols " Do default action for next item. nnoremap j :CocNext " Do default action for previous item. nnoremap k :CocPrev " Resume latest coc list. nnoremap p :CocListResume

LanguageClient-neovim

Posts with mentions or reviews of LanguageClient-neovim. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-06-09.
  • Where to start with LSP in Vim?
    13 projects | /r/vim | 9 Jun 2022
  • F# for Linux People
    3 projects | dev.to | 17 Jan 2022
    On NeoVim, the built-in LSP client works without modification. On Vim, you will need LanguageClient-neovim.
  • Just wanted to share my enthusiasm when I realised error checking (clangd) could be so fast! :) It's almost instant...
    3 projects | /r/neovim | 20 Oct 2021
    I'm using LanguageClient-neovim. Here's the relevant portions of my init.vim:
  • Using Vim for Everything!
    6 projects | /r/FPGA | 6 Oct 2021
    I just saw a nice post in /u/medwatt about using vim for VHDL/Verilog and thought I'd contribute a little! * Syntax and error highlight: https://github.com/autozimu/LanguageClient-neovim * Column align: https://github.com/junegunn/vim-easy-align * Remove annoying whitespaces: https://github.com/ntpeters/vim-better-whitespace * Partial (fuzzy) filename search: https://github.com/junegunn/fzf.vim * Outline all declarations inside a file: â €https://github.com/preservim/tagbar * Treat indentations as vim-objects (useful for languages that don't use { }): https://github.com/michaeljsmith/vim-indent-object There is also mouse support in vim for those who want it. Try typing :set mouse=a. Very useful for resizing windows. I also highly recommend you get good at using folds (https://vim.fandom.com/wiki/Folding). It makes it a LOT easier to navigate files. You can save your fold config per-file with :mkview and load it later with :loadview. If I come up with more hints - I'll mention them in the comments!
  • ALE vs YouCompleteMe vs CoC-rust vs LanguageClient-neovim
    9 projects | /r/rust | 4 Apr 2021
    Might migrate to Neovim's native LSP support at some point, however I find vim-lsp more feature complete out of the box. I used to use LanguageClient-neovim, however, I missed proper support for signature help.
  • Is there a difference between a LSP, code completer, and a linter?
    4 projects | /r/vim | 26 Feb 2021
    YCM is a client. The client is a plugin for Vim or Neovim, even the "built-in" client in Neovim is just a Lua plugin that is included with the editor, it's not really built-in. Examples of other clients:LanguageClient-neovim, vim-lsp, ale.
  • Is rust-analyzer for neovim ever going to support semantic syntax highlighting?
    8 projects | /r/rust | 25 Feb 2021
    I think https://github.com/autozimu/LanguageClient-neovim has this feature already implemented. Built-in LSP could support it also as soon as somebody takes the effort to issue and process the necessary requests.
    8 projects | /r/rust | 25 Feb 2021
    LanguageClient-neovim just merged some support for semantic tokens and the plan, as I read the PR/issues, is to next implement some default mappings from the semantic tokens to highlight groups.
  • Which lsp client is best ?
    2 projects | /r/neovim | 30 Dec 2020
    The best LSP client is the one that works for you. When it comes to neovim, there is a generous variety of LSP clients to choose from. The notables ones being vim-lsc and vim-lsp written in vimscript, LanguageClient-neovim written in rust, YouCompleteMe is written in python and in my experience is the hardest to install, coc.nvim written in typescript and, of course, the neovim's built-in one. I would recommend going with coc.nvim, as it is the best LSP client right now, though it provides much more features than a standard lsp client does and for some people it is a disadvantage and for the others it's not. Also you have to install node.js on your system for coc.nvim to work. I myself use neovim built-in one for a few reasons: it's not in stable yet, but when the neovim 0.5 version comes out, it is gonna be the standard client. Another reason is it's extremely lightweight and customizable. There were already several discussions on the subreddit about the clients you can check out.

What are some alternatives?

When comparing vim-easy-align and LanguageClient-neovim you can also consider the following projects:

goyo.vim - :tulip: Distraction-free writing in Vim

nvim-lspconfig - Quickstart configs for Nvim LSP

vim-lsp - async language server protocol plugin for vim and neovim

nyoom.nvim - A Neovim framework and doom emacs alternative for the stubborn martian hacker. Powered by fennel and the oxocarbon theme

clangd - clangd language server

vim-awesome - Awesome Vim plugins from across the universe

tagbar - Vim plugin that displays tags in a window, ordered by scope

tree-sitter-rust - Rust grammar for tree-sitter

neovide - No Nonsense Neovim Client in Rust

rust-analyzer - A Rust compiler front-end for IDEs

vim-easymotion - Vim motions on speed!