Coder Social home page Coder Social logo

hilbert-yaa / nvim-config Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jdhao/nvim-config

0.0 0.0 0.0 3.76 MB

A modern Neovim configuration with full battery for Python, C++, Markdown, LaTeX, and more...

Home Page: https://jdhao.github.io/nvim-config/

License: MIT License

Lua 36.79% Vim Script 55.90% Vim Snippet 7.31%

nvim-config's Introduction

Introduction

This repo hosts my Nvim configuration for Linux, macOS, and Windows. init.vim is the config entry point for terminal Nvim, and ginit.vim is the additional config file for GUI client of Nvim.

My configurations are heavily documented to make it as clear as possible. While you can clone the whole repository and use it, it is not recommended though. Good configurations are personal. Everyone should have his or her unique config file. You are encouraged to copy from this repo the part you want and add it to your own config.

To reduce the possibility of breakage, this config is only maintained for the latest nvim stable release. No effort is spent on maintaining backward compatibility.

Install and setup

See doc here on how to install Nvim's dependencies, Nvim itself, and how to set up on different platforms (Linux, macOS, and Windows).

Features

UI Demo

For more UI demos, check here.

Start screen with alpha-nvim

fuzzy finding using LeaderF

Code autocompletion with nvim-cmp

Git add, commit and push via fugitive.vim

Command-line autocompletion with wilder.nvim

Tags

Cursor jump via hop.nvim

Go to a string starting with se

GUI-style notification with nvim-notify

Shortcuts

Some of the shortcuts I use frequently are listed here. In the following shortcuts, <leader> represents ASCII character ,.

Shortcut Mode platform Description
<leader>ff Normal Linux/macOS/Win Fuzzy file searching in a floating window
<leader>fh Normal Linux/macOS/Win Fuzzy help file grepping in a floating window
<leader>fg Normal Linux/macOS/Win Fuzzy project-wide grepping in a floating window
<leader>ft Normal Linux/macOS/Win Fuzzy buffer tag searching in a floating window
<leader>fb Normal Linux/macOS/Win Fuzzy buffer switching in a floating window
<leader><Space> Normal Linux/macOS/Win Remove trailing white spaces
<leader>v Normal Linux/macOS/Win Reselect last pasted text
<leader>ev Normal Linux/macOS/Win Edit Nvim config in a new tabpage
<leader>sv Normal Linux/macOS/Win Reload Nvim config
<leader>st Normal Linux/macOS/Win Show highlight group for cursor text
<leader>q Normal Linux/macOS/Win Quit current window
<leader>Q Normal Linux/macOS/Win Quit all window and close Nvim
<leader>w Normal Linux/macOS/Win Save current buffer content
<leader>y Normal Linux/macOS/Win Copy the content of entire buffer to default register
<leader>cl Normal Linux/macOS/Win Toggle cursor column
<leader>cd Normal Linux/macOS/Win Change current working directory to to the dir of current buffer
<space>t Normal Linux/macOS/Win Toggle tag window (show project tags in the right window)
<leader>gs Normal Linux/macOS/Win Show Git status result
<leader>gw Normal Linux/macOS/Win Run Git add for current file
<leader>gd Normal Linux/macOS/Win Run git diff for current file
<leader>gc Normal Linux/macOS/Win Run git commit
<leader>gpl Normal Linux/macOS/Win Run git pull
<leader>gpu Normal Linux/macOS/Win Run git push
<F9> Normal Linux/macOS/Win Run current source file (for Python, C++)
<F11> Normal Linux/macOS/Win Toggle spell checking
<F12> Normal Linux/macOS/Win Toggle paste mode
\x Normal Linux/macOS/Win Close location or quickfix window
\d Normal Linux/macOS/Win Close current buffer and go to previous buffer
{count}gb Normal Linux/macOS/Win Go to buffer {count} or next buffer in the buffer list.
Alt-m Normal macOS/Win Markdown previewing in system browser
Alt-Shift-m Normal macOS/Win Stopping Markdown previewing in system browser
ob Normal/Visual macOS/Win Open link under cursor or search visual selection
ctrl-u Insert Linux/macOS/Win Turn word under cursor to upper case
ctrl-t Insert Linux/macOS/Win Turn word under cursor to title case
jk Insert Linux/macOS/Win Return to Normal mode without lagging

Custom commands

In addition to commands provided by various plugins, I have also created some custom commands for personal use.

command description example
Redir capture command output to a tabpage for easier inspection. Redir hi
Edit edit multiple files at the same time, supports globing Edit *.vim
Datetime print current date and time or convert Unix time stamp to date and time Datetime 12345 or Datetime

Contributing

If you find anything that needs improving, do not hesitate to point it out or create a PR.

If you come across an issue, you can first use :checkhealth command provided by nvim to trouble-shoot yourself. Please read carefully the messages provided by health check.

If you still have an issue, open a new issue.

Further readings

Some of the resources that I find helpful in mastering Nvim is documented here. You may also be interested in my posts on configuring Nvim:

1: Not enabled for Linux, you need to tweak lua/plugins.lua and change the condition for installing vimtex.โ†ฉ

nvim-config's People

Contributors

jdhao avatar soda92 avatar easion101 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.