Skip to content

Nguyen-Hoang-Nam/nvim-dotfiles-kitty

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nvim-Dotfiles-Kitty

Neovim is great, but time-consuming to configure it works properly. I deal with it from 2021, and still change it weekly to fit my job at cooperation.

This configuration works properly with JavaScript, Python, Go, Rust, Lua, PHP and Java.

Main Kitty with Fira, Cascadia, and Mini-File-Icons

What I have done so far

  • Use primitive colours. (Default is Vivid One Dark)
  • Use ligature font, italic font and icon font. (Thanks to Kitty)
  • Bigger icons. (Thanks to nvim-mini-file-icons)
  • Saving the last session. (Thanks to auto-session)
  • Highlight current indent's scope. (Test with JS, Python, Go, Java, PHP, HTML, CSS, Svelte)
  • Support several language's snippet. (I get snippets from rafamadriz/friendly-snippets)
  • Support Emmet. (Thanks to emmet-ls)
  • Support lint and formatter. (Thanks to Efm-Langsever)
  • Modern explorer sidebar. (Thanks to yanil)
  • Range format. (Not stable)
  • Show scrollbar. (Useful when u get lost in a large file 😁)
  • Show the EOF icon. (Useful when detect trailing spaces)
  • Install all plugins manually.

Something I want to do

  • Perfect center dashboard header and show dashboard if there is no buffer.
  • Use nix to manage package

Supported framework

  • React
  • Svelte
  • TailwindCSS
  • Express
  • Gin/gonic
  • FastAPI
  • Laravel
  • Spring Boot

Startup

=====================================
Top 10 plugins slowing nvim's startup
=====================================
1    1.820   nvim-scrollview
2    1.573   auto-session
3    0.995   indent-blankline.nvim
4    0.678   nvim-ts-autotag
5    0.671   nvim-treesitter
6    0.374   nvim-treesitter-pairs
7    0.373   cmp_luasnip
8    0.338   cmp-path
9    0.213   nvim-ts-rainbow
10   0.169   dashboard-nvim
=====================================

Screenshot

Dashboard

Dashboard

Telescope

Telescope

Terminal

Terminal

Help

Help

JavaScript

JavaScript

Go

Go

Find more in wiki

Configuration

Theme

All primitive colours are stored in lua/theme.lua

M = {
    red = '#F9867B',
    orange = '#CD9731',
    yellow = '#FDCE68',
    green = '#A3EEA0',
    cyan = '#6796E6',
    blue = '#7BE2F9',
    purple = '#E19EF5',
    tomato = '#F44747',
    white = '#FFFFFF',

    background = '#212835',
    dark_background = '#1B212C',

    border = '#3E4451',
    comment = '#5C6370',
    lineNumber = '#495162',
    scrollbar = '#4E5666',
    cursorLine = '#2C313A',
    indent = '#383C44',
}

Installation

Requirements

  • Kitty
  • Neovim 0.5

Fonts

  • mini-file-icons
  • Fira code (Or any ligature font)
  • Cascadia (Or any italic font)

Kitty

font_family FiraCode Nerd Font Mono
bold_font Cascadia Code
italic_font Cascadia Mono
bold_italic_font Cascadia Code
symbol_map U+e900-U+e954 mini-file-icons
font_size 16
cursor #6796E6

Plugin list

Git clone below plugins in ~/.local/share/nvim/site/pack/*/start.

Plugin
auto-session
cmp-nvim-lsp
cmp-path
cmp_luasnip
dashboard-nvim
friendly-snippets
git-utils.nvim
gitsigns.nvim
indent-blankline.nvim
lsp_signature.nvim
LuaSnip
nvim-autopair
nvim-bufferline.lua
nvim-colorizer.lua
nvim-cmp
nvim-lspconfig
nvim-mini-file-icons
nvim-scrollview
nvim-toggleterm.lua
nvim-tree.lua
nvim-treesitter
nvim-ts-autotag
nvim-ts-context-commentstring
nvim-ts-rainbow
plenary.nvim
telescope-fzf-native.nvim
telescope.nvim
yanil

Treesitter

Check wiki

Language Server

Check wiki

Lint and Formatter

Check wiki

Mappings

Key Description
<Leader>a Code action
<Leader>b Toggle Explorer
<Leader>c Range format
<Leader>d Go to definition
<Leader>e Search emojis
<Leader>f Show text search
<Leader>g Search gitmojis
<Leader>h Go to left window
<Leader>l Go to right window
<leader>m Format code
<Leader>o Search buffers
<Leader>p Search file
<Leader>q Turn off search's highlight
<Leader>r Rename variable
<Leader>s Save file
<Leader>w Delete current buffer
<Leader>/ Toggle comment
<Leader>; Jump to pairs (Bracket, Parentheses, Quote)
<M-t> Toggle Terminal
jk Insert mode to normal mode
]d Next diagnostic
[d Previous diagnostic
]b Next buffer
[b Previous buffer

TODO

  • Show theme in wiki
  • Support Flutter
  • Add PHP to wiki
  • Show images of all supporting languages

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT