首页 > 其他分享 >笔记-Neovim快速入门

笔记-Neovim快速入门

时间:2024-09-04 21:04:27浏览次数:12  
标签:Neovim neovim 入门 可以 模式 命令 笔记 替换 光标

本文是neovim中的练习项目Tutor的笔记。
建议自己手动尝试一下这个项目,很快就能上手neovim。
想要尝试这个项目,只要输入:Tutor<Enter>即可。

安装 & 启动

使用包管理器apt安装即可。
运行:

$ sudo apt install neovim

Tutor

Lesson 1

移动光标

使用hjkl键可以移动光标,方向如下所示:

	k
h		l
	j

启动&退出

启动neovim的命令格式是:

$ nvim FILENAME

启动后neovim处在普通模式,这个时候问题就来了,什么是普通模式?

众所周知,neovim和vim一样,是一个模态编辑器,这意味着它有多个模式,同一行为在不同模式下会产生不同的结果。
现在需要知道两个模式————普通模式命令模式
不过不用担心,只要知道有这么个东西就行了。

退出程序则需要进入命令行模式,在普通模式下输入冒号即可,而如果想回到普通模式,按Esc即可;
在命令行模式中输入q!即可退出程序,
具体操作是:

<Esc> :q! <Enter>

注意!这么操作将不会保存文件更改。如果想保存文件更改,则需要输入wq

<Esc> :wq <Enter>

要怎么确定自己处在哪个模式呢?
普通模式下光标是个高亮方块,与字符在同一个格子内。
命令模式下光标将跳转到屏幕最底(一整行白色高亮提示行之下),此时的输入发生在最底下。

插入模式

想要编辑文本内容,就要进入插入模式。
有非常多种方法进入插入模式,例如:
在普通模式下,输入a、i或者它们的大写均可进入插入模式,但它们的光标位置将不太一样。
要注意,i是insert(插入),a是append(添加)。故而i将光标插入到所在位置前,而a将光标添加到所在位置后。

要怎么确认自己是不是处在插入模式下呢?
只要看最底部即可,命令模式下输入命令的位置,在插入模式下会显示:

-- INSERT --

简单删除

在普通模式下按x将删去光标所在位置的字符。

Lesson 2

注意,本章命令全部在普通模式下使用

删除

  • dw:删除到下个词的开头
  • d$:删除到行末
  • dd:删除整行
    要注意的是,这些操作说是删除,其实更像是剪切,它们无一例外的都会导致剪切板的改变。

可以注意到这三个命令的开头都是d,这是因为普通模式下的命令格式是:

operator   [number]   motion
  • operator:表示这条命令要做什么事.
  • [number]:表示执行这条命令多少次。
  • motion :移动到指定的文本位置。

于是可以分析出,上面的三条命令都做了删除这件事,区别在于最后的motion指向的位置。

撤销

u可以撤销(undo),按U可以撤销本行的所有修改,用<C-r>可以重做(Redo)。

0可以直接移动到当前行的开头。

Lesson 3

在普通模式下编辑文本

p键可以粘贴。
刚刚提到d这个操作会更改剪切板。按下粘贴,发现插入的是刚刚被删去的内容。

刚刚已经提到过在普通模式下按x可以删去单个字符。
相似的,在普通模式下按r可以替换(replace)字符。

当需要大量更改内容时,可以按c,这会删去一定文本并进入插入模式。
删去的文本取决于命令,命令的格式如下:

c   [number]   motion

后面的两项与上面介绍的是一样的。

Lesson 4

在文档中快速移动

在普通模式下
<C-g>可以显示当前处在文件中的哪个位置。
G可以跳转到文件结尾,gg可以跳转到开头。
先输入数字,再按G可以跳转到对应的行。

/可以前搜索。
?可以向后搜索。

搜索后,按n可以查看下一个搜索结果,按N可以查看上一个。
值得注意的是,这里的n/N是一个motion。这意味着它前面可以加数字。

<C-o>可以让光标回到上一个位置。
<C-i>可以让光标前往刚刚的位置。就像<C-r>与u一样。

输入%可以在对应的左右括号(()[]{})间跳转。

查找替换

在命令模式下,替换文本只需要按以下格式输入。

:s/old/new

但这样只能替换一个匹配项,在其之后加入/g,改为:

:s/old/new/g

即可替换一整行。
而在整个命令前加入行号,行号,即可替换指定行(比如1,3就是替换一至三行的所有匹配项。)

:行号,行号s/old/new/g

如果想要替换整个文件,在前面加入%即可。

:%s/old/new/g

在最后加入c可以在替换前加入询问

:%s/old/new/gc

询问的内容如下:

replace with the (y/n/a/q/l/^E/^Y)?

这些选项的效果是:

  • y:替换当前项,并跳到下一项。
  • n:跳到下一项。
  • a:替换全部。
  • q:退出。
  • l:替换当前项并退出。
  • ^E:屏幕向下移动一行。
  • ^Y:屏幕向上移动一行。
    注意这里的^意思是按住Ctrl

Lesson 5

执行外部shell命令

在命令模式下使用!可以调用外部shell命令
例如:

:!ls

该命令会列出当前工作目录中的文件。相当于在外面的shell里使用了ls命令。

视觉模式

在命令模式下,使用下面命令,即可保存当前文件。

w FILENAME

如果只想保存当前文件的一部分内容,则要先使用视觉模式选择所需内容,再保存文件。

这里有一个新的模式————视觉模式
使用v或者V都能进入视觉模式,该模式下,屏幕最底部会显示:

-- VISUAL -- 

此时移动光标即可选择文本,被选中的文本会被高亮表示。

选择完所需文本后,按:进入命令模式,此时底部会显示:

:'<,'>

看起来是不是有一点熟悉?没错,这就是刚刚展示的定位作用范围,接下来的命令的作用范围就被指定在视觉模式所选择的文本里了。
接下来就像刚刚一样正常输入命令即可。

:'<,'>w FILENAME

在命令模式下,使用r可以显示文件信息:

:r FILENAME

Lesson 6

前面已经提到过按a、i以及它们的大写均可进入插入模式,小写定位当前光标,大写定位当前行。

这里接触一个新的方法,按o(或者它的大写)也可以进入插入模式,并且会开启(open)新的一行。
o将在光标下方开启新行,O将在光标上方开启新行。

按e可以跳跃到词的结尾(end)。

按y可以复制,按p可以粘贴。

按R可以进入替换模式(Replace),这个模式下光标会变为一条字符底下的短横线,按可以退出。

Lesson 7

多窗口与帮助文档

查看帮助文档:按或者命令模式输入help(h),在help后加入关键词可以查看相应帮助。

可以在不同的窗口之间切换。

在命令模式下输入q可以关闭窗口。

在命令模式下,按可以补全命令,按可以展示命令列表。

配置

刚刚的Tutor中我故意略去了设置的部分。

想配置neovim,先要了解neovim如何读取配置文件。
neovim会默认读取文件~/.config/nvim/init.lua,也就是说,只要将配置文件写在这个位置即可。
但一股脑的把配置写在这显然不是一个好的做法。

于是就需要用到一个语句,将它写在init.lua里,就能导入对应配置文件。
这里的目录会默认读取~/.config/nvim/lua/里的内容,并且分隔文件夹的/要替换为.,且省略文件后面的.lua

require('目录')

比如require('main.options')意味着读取~/.config/nvim/lua/core/options.lua文件。

这样就能开心地配置neovim了。
若是要查找配置项,则可以使用h vim.opt查看帮助文档。

标签:Neovim,neovim,入门,可以,模式,命令,笔记,替换,光标
From: https://www.cnblogs.com/iFuti/p/18397337

相关文章

  • PPPoE配置学习笔记
    企业内网和运营商网络如上图所示,中间交换机模拟运营商传输设备。公网IP段:12.1.1.0/24。内网IP段:192.168.1.0/24。PPPoE拨号采用CHAP认证,用户名:admin密码:admin@123实验要求:将R1设置为PPPoE客户端,R2为PPPoE服务器端;R1作为内网用户的网关,内网用户自动获取IP地址;R1上的拨号接......
  • A-LLMRec论文阅读笔记
    LargeLanguageModelsmeetCollaborativeFiltering:AnEfficientAll-roundLLM-basedRecommenderSystem论文阅读笔记Abstract现存的问题:​ 最近的策略侧重于利用基于预训练模态编码器和大型语言模型(LLM)的用户/项目模态信息(如文本或图像)。尽管它们在冷场景下非常有效,但我......
  • 【Linux入门】正则表达以及sort、uniq、tr、cut命令
    文章目录正则表达1.正则表达式(RegularExpressions)常用的正则表达式元字符:1.基本元字符2.字符类元字符3.特殊字符类4.边界匹配符5.控制字符和转义字符6.贪婪与非贪婪模式示例补充sort命令基本用法常用选项示例uniq命令基本用法常用选项示例tr命令基本用法常用......
  • C语言学习笔记 Day16(文件管理--下)
    Day16 内容梳理:C语言学习笔记Day14(文件管理--上)-CSDN博客C语言学习笔记Day15(文件管理--中)-CSDN博客目录Chapter10 文件操作10.5文件状态10.6文件的随机读写fseek()、rewind()(1)fseek():移动光标并开始读写(2)rewind():将光标重置回文件开头10.7文件的删除remove(......
  • Java 入门指南:Java 并发编程 —— 并发容器 PriorityBlockingQueue
    BlockingQueueBlockingQueue是Java并发包(java.util.concurrent)中提供的一个阻塞队列接口,它继承自Queue接口。BlockingQueue中的元素采用FIFO的原则,支持多线程环境并发访问,提供了阻塞读取和写入的操作,当前线程在队列满或空的情况下会被阻塞,直到被唤醒或超时。常用的......
  • AI大模型入门指南:从基础到实践的系统学习路径
    如何系统的入门大模型?本篇文章默认面向对大模型领域感兴趣的程序员。看一下围绕大模型的应用场景和人才需求:**Prompt工程:**基于提示词对大模型的使用,会问问题就行。**基于大模型的应用:在大模型生态之上做业务层产品。AI主播、AINPC、AI小助手。。。之前是会调API就行。......
  • RH442 - 性能调优学习笔记(十一)
    Linux跟踪工具常用选项:-c统计数量  -e后面跟系统调用名称,列出打开的文件在遇到执行命令卡顿时,strace可以帮助排查在哪个步骤出了问题。......
  • python从入门到成神的系列教程(文末附20G资料)
    根据您的需求,我会对每个类目进行一些补充和详细说明。1、字面量字面量是直接在代码中书写的固定值,例如数值、字符串、布尔值等。在Python中,字面量可以直接出现在代码中,不需要额外的构造函数或者类型声明。常用数据类型类型描述示例数字(Number)包括整数、浮点数、复数-整......
  • 【自学笔记】处理类别数据、独热编码和降维(主成分分析)
    类别数据  与数值特征不同,类别数据往往更难被计算机理解,主要分为序数和标称。  序数具有顺序,比如衣服尺码中有XL>L>M等  标称不含任何顺序,特征之间相互独立。处理序数特征  为了让算法正确解读序数特征,我们需要用整数来表示。我们可以定义映射关系,训练后再反向......
  • 大模型入门指南(非常详细)零基础入门到精通,收藏这一篇就够了
    文章目录前言什么是大模型发展历程模型部署量化Quantization动手实验LLamaWhisper免费的LLM产品总结零基础如何学习大模型AI第一阶段(10天):初阶应用第二阶段(30天):高阶应用第三阶段(30天):模型训练第四阶段(20天):商业闭环资料领取前言随着ChatGPT的到来,大模型[1](Lar......