Git Product home page Git Product logo

nvim's Introduction

My Neovim Configuration

badge badge

Features

  • Handy and Smoothy: There will always be a panel to remind you when you forget your key settings. There will always be a short keystroke to help you get to the place you want to jump to. There will always…
  • Powerful coding experience: With the power from nvim-lspconfig, we can have "IDE Level" coding experience in the terminal.
  • Fancy looking: Talk is cheap, see the gallery.
  • Easy Customize: Always injecting new configuration, wherever you like.

Getting Start

This configuration is compatible with neovim 0.8+ version.

git clone --depth=1 https://github.com/Avimitin/nvim.git ~/.config/nvim

Finally, input nvim to open the editor, and all plugins will be downloaded automatically.

nvim

Document

See Docs.

Customize

See document

Treesitter

To make treesitter compatible with the stable neovim, and to make the share library compilation process reproducible and clean, this configuration uses nix package manager to manage the treesitter parser plugin. The flake output provides package treesitter-parsers to modify the neovim runtime path to point to this parser plugin. To use it, you can use home-manager to help you put this package into neovim's data directory.

  • Example home-manager configuration:
# This can help auto load
xdg.dataFile = {
    nvim-treesitter-parsers = {
        source = nvim-flake.packages."x86_64-linux".treesitter-parsers;
        target = "nvim/siter/plugin/treesitter-parsers.lua";
    };
}

You can also filter parsers by their name: here parsers is a callable attribute, and invoke it with an array can filter data inside it.

xdg.dataFile = {
    nvim-treesitter-parsers = {
      source = let
        parsers = pkgs.callPackage ./nix/treesitter-parsers.nix {};
        toNvimPlug = pkgs.callPackage ./nix/set-rtp.nix {};
      in
        # And now, only "bash" and "lua" plugin will be prepended into neovim runtime path
        toNvimPlug "treesitter-parsers" (parsers [ "bash" "lua" ]);
      target = "nvim/site/plugin/treesitter-parsers.lua";
    };
}

To add more language parser, you can attach more parser at the end of the nix file. The array expect the argument in this form: [{ name: xxx; hash: xxx; }, ...], where:

  • name string: The name of the language
  • hash string: The input hash, you can leave it blank and wait for nix hash report the correct hash
  • needs_generate bool: When true, tree-sitter CLI will be used to generate the parser.
  • srcRoot string: Specify where the parser source located. Some repository will vendor two or more parser source code in one repository.

Gallery

Utilities
Easy in-file jump
LightSpeed
Markdown Utils
Markdown Preview
image
Table
vim-table-mode-gif
Coding Utils
Diagnostic Panel
image
Code Completion
coding
Command Completion
cmp-cmdline
Inline diagnostic analytics
lsp-line
Signature Help
lsp-popup
Code Actions
lsp-codeaction
Diagnostic
lsp-diagnostic
Debug CPP
cpp
Debug Rust
Rust
Code navigate
Navigate
Project grep
live-grep
Symbol search
symbols
File Manage
nvim-tree
nvim-tree
Find file
find-file
Git Helper
Fugitive
fugitive
Themes
Kanagawa Theme
kanagawa

License

This configuration since commit 912416ae9c4b55501b23a91d774b567ba8697dd1 are licenced under the Apache 2.0 license.

另附:禁止在 CSDN,bilibili 等国内平台使用该配置文件进行任何活动。 你只保有自己修改部分的权利。

Development Related

Versioning

Version will be released in cvYYYY.0M.0D format. I will try to release update each weak.

Changelog

See CHANGELOG.md


nvim's People

Contributors

avimitin avatar ocfox avatar towry avatar xzcxzcyy avatar rcklos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.