/cosmos-nvim

A must-have configuration for Spacemacs users after defecting to Vim

Primary LanguageLua

🪐 My Neovim Configuration 🚀

A must-have configuration for Spacemacs users after defecting to Vim

Build Status

If you want the power of VSCode, the interactivity of Spacemacs, and the text-objects of Vim, I highly recommend you try this configuration.

Key Features

  1. LSP: nvim-lspconfig, lspsaga, lspfuzzy

  2. Spacemacs operating experience:

    a. shortcuts: spacemacs style keyboard shortcuts with which-key,

    b. ivy: Telescope like ivy and helm-swoop

    c. layers: spacemacs layer abstraction

    d. customization: like spacemacs, it can be easily customized by users in particular

    e. etc.

  3. Looking forward to your continued exploration, there are some screenshots

Get A Taste Of

If you're worried about breaking your current vim configuration but want to try it out for yourself, you can use docker to give it a quick try in an isolated environment:

docker run -it -w /root/.config/nvim yetone/cosmos-nvim nvim

Install

1. Requirements

Neovim 6+

Only Neovim 6.0 and above are supported, please refer to the official installation documentation of Neovim: Install Neovim

Nerd Fonts

Go to Nerd Fonts homepage to download the patched fonts you are currently using.

iTerm2 colorscheme [Optional]

If you are using iTerm2 and expect the iTerm colors to blend well with cosmos-nvim colors, it is highly recommended to install and use this colorscheme for iTerm2.

2. Install my configuration

mv ~/.config/nvim{,.yetone-backup} || true

git clone --depth 1 https://github.com/yetone/cosmos-nvim.git ~/.config/nvim

3. Install your language lsp server in your nvim

For example, if you are writing Python, you will need to open nvim and run the following command:

:LspInstall python

Custom Configuration

If you want to define your own configuration, you can create a file called .cosmos-nvim.lua in the $HOME root directory (the shortchut is leader - f - e - d), for example:

~/.cosmos-nvim.lua

local cosmos = require('core.cosmos')

return {
  layers = {
    'editor',
    'git',
    {
      'ui',
      enable_beacon = false,
      enable_smooth_scrolling = false,
    },
    {
      'completion',
      tab_complete_copilot_first = false,
    },
  },
  options = {
    -- python3_host_prog = '~/.pyenv/versions/nvim-py3/bin/python',
  },
  before_setup = function()
    -- cosmos.add_plugin('wakatime/vim-wakatime')
  end,
  after_setup = function()
    -- cosmos.add_leader_keymapping('n|aw', { '<cmd>WakaTimeToday<cr>', name = 'WakaTime Today' })
  end,
}

Note: When you have finished changing the configuration file, always remember to restart nvim and run :PackerSync

Some Screenshots

Which Key like spacemacs

Fuzzy search commands like spacemacs

Find recent files

The status bar with lsp status

Search current buffer like emacs helm-swoop

List symbols