How to Configure Neovim to make it Amazing -- complete tutorial
Summary
TLDRこのビデオは、Neovimの設定を理解し、Luaで書かれた非常にシンプルで理解しやすい方法で美しくする方法を紹介しています。Vimscriptの理解が難しいと感じていた制作者は、Neovimの組み込みスクリプト言語であるLuaを使って、新しい設定を始めました。Luaのモジュール機能を活用して設定をモジュール化し、Packer.nvimパッケージマネージャーをインストールして機能性を追加しました。さらに、grovboxのカラースキーム、nvim-tree、Telescopeなどのプラグインを追加し、設定をカスタマイズしました。このプロセスは、Luaの機能を最大限に活用し、短時間で素晴らしい設定を実現する手順を説明しています。
Takeaways
- 📘 ネオビムの設定は、多くのアイデアと慣習があり、理解するのが難しい場合があります。
- 🛠️ ネオビムは、Luaという組み込み可能な軽量プログラミング言語を標準で備えており、機能型、手続き型、オブジェクト指向型のプログラミングをサポートしています。
- 📋 ネオビムでは、通常のinit.vimの代わりにinit.luaファイルを使用して設定を読み込むことができます。
- 🔧 Luaを使用すると、設定をモジュール化し、より使いやすく、理解しやすくなります。
- 📦 Packer.nvimは、Luaで書かれたネオビムのパッケージ管理システムで、非同期インストールや遅延ローディングなどの機能があります。
- 🎨 GroveboxカラースキームやNVM、web-dev icons、luolineなどのプラグインをインストールして、ネオビムの外観を向上させることができます。
- 🔗 各プラグインの設定を個別のファイルにすることで、モジュール化された設定が維持できます。
- 🌳 Nvim-treeを使用すると、ファイルの閲覧や検索が簡単になります。
- 🔍 Telescopeは、ファイルやシンタックスハイライトなど、多くの便利な機能を提供します。
- 🎉 Luaを使用して、短時間で非常に最小限の設定で素晴らしいネオビムの設定を作成できます。
- 🔜 LSP(Language Server Protocol)については、次の動画で解説する予定です。
Q & A
Neovimとは何ですか?
-Neovimは、Vimのパワフルなテキストエディタの拡張版です。Luaという軽量で組み込み可能なプログラミング言語を内蔵しており、機能型、手続き型、オブジェクト指向型のプログラミングをサポートしています。
Luaを使ったNeovimの設定ファイルはどのように作成しますか?
-Neovimの設定ファイルは、`init.lua`という名前のLuaスクリプトファイルとして作成します。このファイルは`~/.config/nvim/init.lua`に配置されます。
Vim設定をLuaでどのように記述するのですか?
-LuaでVim設定を記述する際には、`vim.g`と`vim.opt`を使用して、VimのAPIを呼び出して設定を行います。例えば、`vim.g.leader = ' '`はリーダーキーをスペースに設定し、`vim.opt.tabstop = 2`はタブ幅を2に設定します。
Neovimでモジュール化された設定はどのように実現しますか?
-Luaの`require`関数を使用して、設定をモジュール化できます。各機能やプラグインの設定を別々のLuaファイルに分けて、`init.lua`から必要なモジュールを読み込むことで、設定を整理できます。
Packer.nvimはどのような役割を果たしますか?
-Packer.nvimはNeovimのパッケージ管理システムで、Luaで記述されたプラグインや機能を管理するためのツールです。非同期インストール、ポストインストールおよびアップデートフック、表現力のある設定、遅延ローディングオプションなど、多くの便利な機能を提供しています。
Packer.nvimをインストールするにはどうすればいいですか?
-Packer.nvimをインストールするには、まず`init.lua`ファイル内で`require('packer').sync()`を呼び出します。その後、Packerのブートストラップ関数を使用して、Packer自体をインストールします。
Neovimでカラースキームを変更するにはどうすればいいですか?
-Neovimでカラースキームを変更するには、例えば`groovebox`というカラースキームをインストールし、`init.lua`ファイル内で`vim.cmd('colorscheme groovebox')`を呼び出すことで、カラースキームを設定できます。
Nvim-treeとEnvy-web-dev-iconsは何ですか?
-Nvim-treeはファイルシステムのブラウザのようなツールで、Envy-web-dev-iconsはファイルやディレクトリにアイコンを表示するプラグインです。これらを使用することで、Neovimのファイルブラウジングと可視性が向上します。
Lualineは何ですか?
-LualineはNeovimのステータスラインをカスタマイズするためのプラグインで、Powerlineのような見た目を提供します。Luaで書かれており、カスタマイズ性が高いです。
Tree-sitterとTelescopeは何ですか?
-Tree-sitterは構文ハイライトのためのライブラリで、TelescopeはNeovimで様々な検索やフィルタリングを行うためのプラグインです。これらを使用することで、コードの可読性や検索機能を向上させることができます。
プラグインの設定をどのように整理するのですか?
-プラグインの設定は、それぞれのプラグインごとにLuaファイルを作成し、`~/.config/nvim/lua/`ディレクトリ内に配置することで整理できます。これにより、設定がモジュール化され、管理しやすくなります。
Outlines
📘 NeovimのLuaコンフィグレーション入門
この段落では、Neovimの設定と理解の方法について説明されています。特にNeovimには様々なアイデアと慣習があり、混乱を避けることは難しいとされています。このビデオでは、Luaで書かれた非常にシンプルで理解しやすい設定から始め、Neovimを美しく見せることができます。この設定には、nerdtreeの構文高亮、tree-setter、telescopeの曖昧さ検索とファイル検索、luolineなどが含まれています。
📘 Luaを使ったNeovimの設定
この段落では、Luaを使ったNeovimの設定方法が紹介されています。Luaは軽量で組み込みやすいプログラミング言語で、関数型、手続き型、オブジェクト指向型のプログラミングを標準でサポートしています。NeovimのLuaは、設定のための便利な機能とバインディングも提供しています。新しいVim設定から始め、init.luaファイルを作成し、いくつかのVim設定をLuaコードで行います。また、Luaがモジュールを読み込むことができるので、設定をモジュール化することができます。
Mindmap
Keywords
💡Neovim
💡Lua
💡Configuration
💡Nerdtree
💡Telescope
💡Luoline
💡Packer.nvim
💡Modularization
💡Keymaps
💡Color Scheme
💡Web Dev Icons
Highlights
Introducing a minimal and easy to understand Neovim configuration in Lua, covering essential plugins like NERDTree, Tree-sitter, Telescope, and LuaLine.
The struggle with VimScript and the transition to Lua for a more understandable Neovim configuration.
Lua's lightweight and versatile programming capabilities enhancing Neovim configuration.
Starting Neovim configuration from scratch with init.lua, showcasing basic Lua code for Vim settings.
Modularizing the Neovim configuration for better organization and easier management.
Introduction and setup of Packer.nvim as the package manager for extending Neovim's functionality.
Configuring Neovim with essential plugins like Groovebox for color scheme, nvim-tree, and nvim-web-dev-icons.
Setting up LuaLine for a powerful status line in Neovim.
Organizing plugin configurations into separate files for a clean and modular setup.
Adding and configuring Tree-sitter for advanced syntax highlighting.
Integrating Telescope for enhanced file searching and fuzzy finding.
Highlighting the power of Neovim's Lua configuration through a comprehensive setup walkthrough.
The complete Neovim setup showcases a beautiful, efficient, and minimal configuration.
Teasing future content on configuring Language Server Protocol (LSP) with Neovim for an in-depth development environment setup.
Encouragement to subscribe for upcoming tutorials on enhancing the Neovim development environment.
Transcripts
foreign if you're looking to configure
and more importantly understand your Vim
configuration it can be a daunting task
with neovim specifically there are a lot
of competing ideas and conventions
making it easy to get lost in the weeds
in this video I'm going to show you how
to make neovim look beautiful with a
very minimal and easy to understand
configuration written in Lua from
scratch this covers nerdtree syntax
highlighting with tree Setter telescope
for fuzzy finding and file finding
luoline and others please be sure to
like And subscribe let's get into it
now I have a confession to make
vimscript never quite made sense to me
so half the time I was reconfiguring my
Vim configuration I didn't understand
what the hell I was doing neovim has
changed that it comes with a scripting
language built in called Lua Lua is a
lightweight embeddable programming
language that supports functional
procedural and object-oriented
programming out of the box the neovim
instance of Lua also comes with a lot of
helpful features and bindings for
configuring them let's check this out
with a new Vim configuration from
scratch neovim supports loading in a
knit.lua file for configuration instead
of the usual init.vim so let's start
there we will CD into our config nvim
directory and create a new init.lua file
now to start things off let's put in a
couple of Vim settings that I'm
comfortable with first of all you'll
note that this is all actually Lua code
this vim.g and vim.opt things are meta
accessors which essentially call lower
level luo functions that call the Vim
API to set key bindings and options for
them and in this small initial init.lua
I set my leader to space I use tab stop
shift width shift round just things that
I like to use in my normal programming
experience and I set one keymap to
leader h to clear any search that I
might have just done so now if we write
and Source this file we can see that
it's already working and if I search for
something and type leader h it will
clear the search great so this initial
init.lua file is great and all but we're
not really taking advantage of anything
that Lua gives us Lua can load modules
in the Lua path in nvim so what we can
do is modularize our configuration and
make it look something like this making
our configuration more modular makes it
easier to work with and easier to
understand so let's get started with
that we'll move our init.lua code into a
new file under nvim Lua core
keymaps.lua essentially this creates a
new module under
lua.core.keymaps so we paste all our
code from before and we go back to our
initial init.lua file and just make sure
we require
keymaps.lua in the
lua.core.keymaps module
if we source and load this file we see
that nothing has changed which means
everything still works
next we want to install a package
manager so we can add more functionality
and Beauty to this neovim configuration
I like to use packer.nvim it's a package
management system or neovim that has a
lot of interesting features like being
written in Lua configured in Lua async
installation post install and update
hooks expressive configuration and lazy
loading options Packer is really cool
now in the docs Packer has a quick start
section that teaches you how to download
install Packer and then add it to your
plugins.lua file but my favorite way to
install Packer is with their
bootstrapping helper functions now
essentially how this works is we write a
function that checks if Packers already
installed and if not we want to install
Packer and call sync which will install
all of the packages that you have listed
here let's copy and paste this into our
config nvim Lua core
plugins.luophile next we want to make
sure we require our new plugins.lua file
in our init.lua we want to quit neovim
reopen it and we can see that Packer is
working hard to install our plugins now
it's working great now let's use Packer
to install some plugins to make this
neovim configuration beautiful we
install groovebox as a color scheme it's
just my favorite there are plenty of
others out there we also install nvim
tree and envium web dev icons the web
dev icons displays really cool icons in
the nvim tree so we like that next we
install NVM luoline which is a really
cool looking power line type thing for
neovim now if we save this file and run
Packer sync Packer will install all of
the new packages that we just wrote
pretty cool now we need to set up all
these plugins we just installed and we
do this by creating a new module called
plug-in config under our Lua core
namespace and we do this by creating a
new folder called plug-in config within
our Lua core directory inside of plug-in
config directory we're going to create a
new file for each plugin that we just
installed this is great because it keeps
everything modular and each plugins
configuration has its own file so we're
going to create three files groovebox
nvim tree and luoline now we want to
edit each of these files to add the
configurations for each plugin in groov
box we want to set our term groy colors
to true and we want to add a Vim command
to set our color scheme to groovebox in
Lua line we want to paste a simple
config that makes our theme groovebox
which matches with our color theme and
sets icons enabled to true we also have
a little bit extra here because I like
seeing the full path of my file in the
first section of luoline which is under
sections lure line a and then an nvim
tree we want another simple
configuration where we want to disable
netrw and we want to require nvim tree
and set it up with no options and we
want to set a new keymap control n and
now that will toggle nvim tree find file
toggle and this is actually a really
cool setup whenever you type control n
Envy on tree will find the file you're
currently in and open the directory in a
new tree it's pretty neat next we want
to create a new init.lua file in our
plugin config directory this init.lua
file will require all of our
configurations and then in our base
init.lua file we want to require our
plugin configuration and this is doable
because our init.lua in the plugin
configuration directory makes it so that
we can require this namespace wholesale
now if we CD back into our base
directory for our neovim if we open
neovim we can see that all of our
plugins are automatically sourced and
everything looks amazing we have
nerdtree on the left we can browse our
files we can see that groovebox theme
and we can see Lua line down there
looking great nice now we want to add
two new plugins to our configuration
call called tree sitter and Telescope we
can navigate to our plugins Lua file by
going through nerd tree and we want to
install tree sitter and Telescope tree
centers for syntax highlighting and
telescope is for a bunch of awesome
things we can write and quit the file
and we reload neovim and we dive into
the directory and we call Packer sync
and Packer sync will sync up all the
files it'll download our new plugins and
we can continue with configuration
now we want to create two new
configuration files one for tree sitter
and one for telescope
on telescope we want to paste the small
config that gives us a couple little
helper functions Ctrl P for built-in
files and things like that
in our trees that are config we want to
paste in another little bit of
configuration just to ensure we have a
couple of our languages that we want to
make sure we're highlighting in syntax
now we want to drill back down to our
net.lua in our plugin config directory
and make sure we require those two new
plugin configurations
if we quit and reload Vim we can see
that tree sitter is downloading these
parsers for the languages that we
specified now let's show everything off
if we open nvim we can see that we have
our fine files from telescope we see
nvim tree sitters and highlighting all
of our syntax we have nerd tree we have
grapping of things within our files of
strings and we have a bunch of cool
stuff lualine looks amazing our color
scheme looks amazing this whole entire
setup looks amazing and this was done
really really quickly with very minimal
configuration
pretty cool
I hope you enjoyed this complete
tutorial of how to build a neovim
configuration in Lua from scratch we
made an awesome modular configuration
and everything looks really really cool
one thing you might have noticed is that
I did not go over LSPs and I didn't do
that because that is going to be my next
video so please subscribe and make sure
you tune in for the next one on LSPs
with Mason
thanks
Browse More Related Video
Obsidian Copilot: The Best AI Integration for Your Notes
How To Use Copilot Studio Kit for Test Automation
【スマホ版・動画編集】Canvaで作るInstagramリールの作り方(TikTok/YouTubeショート用にもOK)
【2024年新シリーズ 第2弾】Gmailを100倍活用する方法。G神流の最強の使い方!
Notionでタスク管理する方法!プロジェクトと一緒に管理!
Nothing OS 2.5.5 for Nothing Phone (1) - ChatGPT & AI-Powered Algorithm integration & More
5.0 / 5 (0 votes)