首页 > 其他分享 >Neovim 的配置与使用

Neovim 的配置与使用

时间:2023-06-14 10:22:50浏览次数:47  
标签:Neovim neovim vscode 配置 lua keymap 使用 config nvim

LazyVim

参考Lazyvim的官方安装教程即可安装,要求系统已经安装好了npm

You can find a starter template for LazyVim here

Macos or Linux

Install the LazyVim Starter

  • Make a backup of your current Neovim files:

    # required
    mv ~/.config/nvim ~/.config/nvim.bak
    
    # optional but recommended
    mv ~/.local/share/nvim ~/.local/share/nvim.bak
    mv ~/.local/state/nvim ~/.local/state/nvim.bak
    mv ~/.cache/nvim ~/.cache/nvim.bak
    
  • Clone the starter

    git clone https://github.com/LazyVim/starter ~/.config/nvim
    
  • Remove the .git folder, so you can add it to your own repo later

    rm -rf ~/.config/nvim/.git
    
  • Start Neovim!

    nvim
    

    Refer to the comments in the files on how to customize LazyVim.

windows

Install the LazyVim Starter with PowerShell

  • Make a backup of your current Neovim files:

    # required
    Move-Item $env:LOCALAPPDATA\nvim $env:LOCALAPPDATA\nvim.bak
    
    # optional but recommended
    Move-Item $env:LOCALAPPDATA\nvim-data $env:LOCALAPPDATA\nvim-data.bak
    
  • Clone the starter

    git clone https://github.com/LazyVim/starter $env:LOCALAPPDATA\nvim
    
  • Remove the .git folder, so you can add it to your own repo later

    Remove-Item $env:LOCALAPPDATA\nvim\.git -Recurse -Force
    
  • Start Neovim!

    nvim
    

    Refer to the comments in the files on how to customize LazyVim.

Docker

docker run -w /root -it --rm alpine:edge sh -uelic '
  apk add git lazygit neovim ripgrep alpine-sdk --update
  git clone https://github.com/LazyVim/starter ~/.config/nvim
  cd ~/.config/nvim
  nvim
'

It is recommended to run :checkhealth after installation

Sublime text4 使用 NeoVintageous插件

Sublime text4中安装该插件

启用ctrl + [作为esc

点击sublime Text -> settings ->settings,编辑右侧的配置文件,添加"vintage_ctrl_keys": true,

启用jkesc

点击sublime Text -> settings ->settings,编辑右侧的配置文件,添加"vintageous_i_escape_jk": true,

使yy会复制到系统剪贴板

点击sublime Text -> settings ->settings,编辑右侧的配置文件,添加"vintageous_use_sys_clipboard": true,

vscode使用vscode.neovim插件

高亮异常问题

修改~/.config/nvim/init.lua为,由于该插件需要基于本机的nvim

if vim.g.vscode then
    -- Vscode extension
else
    -- bootstrap lazy.vim, LazyVim and your plugins
    require("config.lazy")
end

系统剪贴板同步问题

win11

插件设置:Settings-user页面,Neovim Executable Paths: Win32内容设置为C:\Users\zwyyy\scoop\apps\neovim\current\bin\nvim.exeNeovim Init Vim Paths: Win32内容无需设置。

为了使vscode中yank的内容与系统剪贴板同步,在~/AppData/Local/nvim目录下坐如下操作:

  • 修改init.lua内容如下:
    if vim.g.vscode then
        -- Vscode extension
        require("vscode.config.options")
    else
        -- bootstrap lazy.vim, LazyVim and your plugins
        require("config.lazy")
    end
    
  • lua目录下新建vscode/configvscode/plugins两个文件夹,同时在vscode/config文件夹下新建options.lua文件,文件内容如下:
    local opt = vim.opt
    opt.clipboard = "unnamedplus" -- 复制会复制到系统剪贴板
    

wsl

插件设置:Settings-Remote [WSL:Debian]页面,Neovim Executable Paths: Linux内容设置为/usr/bin/nvimNeovim Init Vim Paths: Linux内容无需设置。

key bindings中查找ctrl+c,删除与neovim有关的两项,否则会导致插入模式下无法使用ctrl+c复制

设置jkesc

编辑keybindings.json,添加

{
    "command": "vscode-neovim.compositeEscape2",
    "key": "j",
    "when": "neovim.mode == insert && editorTextFocus",
    "args": "j"
}
{
    "command": "vscode-neovim.compositeEscape2",
    "key": "k",
    "when": "neovim.mode == insert && editorTextFocus",
    "args": "k"
}

使用gc作为注释快捷键

vscode.neovim官方给出了基于init.vim修改方法,即在init.vim中添加以下内容

xmap gc  <Plug>VSCodeCommentary
nmap gc  <Plug>VSCodeCommentary
omap gc  <Plug>VSCodeCommentary
nmap gcc <Plug>VSCodeCommentaryLine

这里我们修改为基于lua的: 在lua/vscode/config目录下新建keymaps.lua文件,内容修改为

local keymap = vim.keymap
-- local opts = { noremap = true, silent = true }
-- vscode.neovim用于注释代码的按键映射
keymap.set("v", "gc", "<Plug>VSCodeCommentary")
keymap.set("n", "gc", "<Plug>VSCodeCommentary")
keymap.set("o", "gc", "<Plug>VSCodeCommentary")
keymap.set("n", "gcc", "<Plug>VSCodeCommentaryLine")

同时修改init.lua,添加require("vscode.config.keymaps")

Neovim配置

win11

keymap配置

Insert模式下按下jk退出Insert模式,将~/AppData/Local/nvim/config/keymap.lua中文件内容修改为:

local keymap = vim.keymap
keymap.set("i", "jk", "<ESC>")

WSL

同步系统剪贴板

执行sudo apt install xclip以安装xclip,在~/.config/nvim/lua/vscode/config/options.lua中,修改内容为:

local opt = vim.opt
opt.clipboard = "unnamedplus" -- Sync with system clipboard

keymap配置

同Windows,注意keymap.lua文件的位置就好了。

设置tab-size为4

修改~/.config/nvim/lua/config/optionas.lua,追加内容

opt.tabstop = 4
opt.shiftwidth = 4

杂项

<S-Tab>已经被lazyvim设置于为Go to left windows

切换tab

备份

文件存档于github-nvim-config,理论上安装lazyvim之后pull即可。

参考

NeoVintageous-clipboard NeoVintageous-jk Vscode.neovim Vscode.neovim-gc-comment

标签:Neovim,neovim,vscode,配置,lua,keymap,使用,config,nvim
From: https://www.cnblogs.com/zwyyy456/p/17479396.html

相关文章

  • 配置 Sublime Text4为 C++ 编辑器
    概述涉及以下插件的安装和配置PackageControlTerminusLSPLSP-clangdclang-formatLSP-pyrightLSP-json配置sublime安装PackageControl以进行包管理。Terminus安装Terminus以实现sublimetext4内的terminal。绑定快捷键:[ { "keys":[ "ctrl+shift+t" ], "c......
  • Zsh 的简单配置与使用
    安装starshipMacOS下执行curl-sShttps://starship.rs/install.sh|sh即可,Linux下(如Debian),执行curl-sShttps://starship.rs/install.sh|sh即可,然后执行starshippresetpure-preset>~/.config/starship.toml将预设主题设置为pure。安装zinit插件执行bash-c"$(curl--......
  • mac下nginx+tomcat+memcached集群配置和共享session
     mac下nginx+tomcat+memcached集群配置和共享session  首先分别安装nginx(版本1.5.8)、tomcat(版本7.0)、memcached(版本1.4.17),具体安装说明请分别参考下面的文章。 nginx安装说明 http://stephen830.iteye.com/blog/2002195tomcat安装说明http://stephen830.iteye.com/blog/2001......
  • Tomcat SSL配置大全
    TomcatSSL配置大全 由于配置CAS的单点登陆系统,需要先配置Tomcat的SSL,在配置tomcat的SSL过程中,我配置的版本是tomcat5.5.20,参考了很多资料,但发现一直不行,后来我换到了5.5.9,结果非常顺利,我于是换了总共4个主要版本,发现SSL的配置还真有些不同,现在我将这些配置记录下来,供下......
  • ubuntu下的apache+php环境安装和配置
     ubuntu下的apache+php环境安装和配置  ■一、安装Apache2#apt-getinstallapache2 安装好后,重启 serviceapache2restart ,会发现1条警告信息:有一条关于ServerName的警告。要去除该警告,必须修改/etc/apache2/apache2.conf配置文件在apac......
  • 在上一操作期间遇到问题:Debug|AnyCPU 配置中 TargetFrameworkMoniker和NugetTargetMon
    在上一操作期间遇到问题:Debug|AnyCPU配置中TargetFrameworkMoniker和NugetTargetMoniker属性的值均为空场景使用VS打开之前的项目,报错:在上一操作期间遇到问题:Debug|AnyCPU配置中TargetFrameworkMoniker和NugetTargetMoniker属性的值均为空新建项目后,选择该项目未项......
  • Tomcat 配置多域名 Alias
    在Tomcat配置多域名,目的是和apache相对应,实现多域名访问。使用<Alias></Alias>,务必注意,使用的是首字母大写。我刚开配置使用小写,如果host的name=“localhost”,然后把所有域名添加到alias中,可以进行正常访问,后来把houst的name改成了域名,就不能访问,弄了半天原来是大小写的问题......
  • sqlserver使用between and 筛选时间,两个时间段选择一样筛选当天的数据无法筛选
    一般我们使用时间筛选代码是select*from表名wheredatebetweenRQANDRQ1但是这样子是无法筛选当天数据的,想要筛选当天数据得对这个代码进行一下修改,这里是sqlserver的代码select*from表名whereCONVERT(nvarchar(10),date,120)betweenRQANDRQ1   mysql代码如......
  • 查询配置数据库 视图 响应时长优化问题
    问题: 主数据库为oracle,配置数据库SqlServer,有个子页面查询SqlServer数据库视图,需要二十多秒才给响应处理方案:把查询分页数据的SQL 和查询分页计数的SQL异步处理原代码:page=iMpckService.getsympzkcSqlserver(params);//查询SQLserver数据库total=iMp......
  • 使用 ProcessBuilder API 优化你的流程
    ProcessBuilder介绍Java的ProcessAPI为开发者提供了执行操作系统命令的强大功能,但是某些API方法可能让你有些疑惑,没关系,这篇文章将详细介绍如何使用ProcessBuilderAPI来方便的操作系统命令。ProcessBuilder入门示例我们通过演示如何调用java-version命令输出JD......