nano基础

下面是对 nano 文本编辑器的基本使用方法的详细讲解,适用于 Linux 和 macOS 系统终端中常见的 nano 命令行编辑器。


📘 一、什么是 nano

nano 是一个简单易用的命令行文本编辑器,适用于快速编辑配置文件、代码、文本等。它是 vivim 的简化替代方案,对新手尤其友好。


📥 二、启动 nano

nano 文件名
  • 打开已有文件nano example.txt
  • 新建文件并编辑nano newfile.txt

🖱️ 三、基本操作

📄 光标移动

操作 快捷键
向上 / 向下 ↑ / ↓ 方向键
向左 / 向右 ← / → 方向键
移动到行首 Ctrl + A
移动到行尾 Ctrl + E
上滚一页 Ctrl + Y
下滚一页 Ctrl + V

✏️ 编辑文本

  • 直接输入即可编辑
  • 删除字符:BackspaceDelete
  • 剪切当前行:Ctrl + K
  • 粘贴剪切内容:Ctrl + U

🔍 查找与替换

功能 快捷键
查找文本 Ctrl + W(输入关键词后按 Enter
查找下一个匹配 再按 Ctrl + W,然后按 Enter
替换文本 Ctrl + \(先输入要替换的,再输入新内容)

💾 保存与退出

操作 快捷键
保存文件(写入) Ctrl + O,然后按 Enter 确认
退出 nano Ctrl + X
保存并退出 Ctrl + O 保存,再 Ctrl + X 退出

📌 四、底部快捷命令说明(例子)

当你打开 nano 后,底部有像这样的提示:

^G Help   ^O Write Out   ^W Where Is   ^K Cut Text
^X Exit   ^R Read File   ^\\ Replace   ^U Paste Text

这些意思是:

  • ^ 代表 Ctrl
    • 例如 ^XCtrl + X
    • ^OCtrl + O

🔐 五、使用示例

编辑一个配置文件

sudo nano /etc/hosts
  • 编辑完按 Ctrl + O 保存,Enter 确认;
  • 再按 Ctrl + X 退出。

🧠 六、快捷键汇总表

功能 快捷键
保存文件 Ctrl + O
退出编辑器 Ctrl + X
查找文本 Ctrl + W
替换文本 Ctrl + \
剪切整行 Ctrl + K
粘贴剪切内容 Ctrl + U
帮助文档 Ctrl + G
上/下一页 Ctrl + Y / Ctrl + V

当然可以!下面是关于 .nanorc 配置文件、自定义配色和语法高亮 的详细讲解,让你将 nano 打造成更强大、舒适的文本编辑器。


📁 一、什么是 .nanorc

.nanorcnano用户级配置文件,通常位于用户主目录下:

~/.nanorc

它允许你设置:

  • 配色方案
  • 语法高亮规则
  • 编辑器行为(比如行号、自动缩进等)

系统范围的配置一般在:

/etc/nanorc

🎨 二、启用语法高亮支持

在默认安装下,nano 带有多个语法定义文件,位于:

/usr/share/nano/

例如:

ls /usr/share/nano

你会看到:

c.nanorc  html.nanorc  python.nanorc  sh.nanorc  etc...

✅ 启用方法:

打开或创建 ~/.nanorc,添加如下内容启用某些语言支持:

include "/usr/share/nano/python.nanorc"
include "/usr/share/nano/html.nanorc"
include "/usr/share/nano/sh.nanorc"

你也可以一次性启用所有:

include "/usr/share/nano/*.nanorc"

🖌️ 三、自定义配色方案

每种语法文件中,颜色规则使用如下格式:

syntax "name" "\.ext$"
color foreground,background "pattern"

🎨 颜色示例:

颜色名包括:white black red green blue yellow magenta cyan brightwhite 等。

🔧 示例:创建 Python 高亮配置

nano ~/.nanorc

添加如下内容:

syntax "python" "\.py$"
color brightgreen "\<(def|class|return|if|else|elif|for|while|import|from)\>"
color yellow "(['\"])[^'\"]+\1"
color red "#.*$"
color magenta "^\s*#.*$"
color blue "[-+/*=<>!%&|~^]+"

保存后重新打开 .py 文件就能看到颜色效果。


⚙️ 四、常见实用配置

以下是你可以在 ~/.nanorc 中加入的常用设置:

set autoindent       # 自动缩进
set linenumbers      # 显示行号(nano 5.0+)
set tabsize 4        # 设置 Tab 为 4 空格
set softwrap         # 自动换行
set mouse            # 鼠标支持(nano 5.0+)
set constantshow     # 始终显示光标位置
set positionlog      # 记录上次光标位置

📚 五、推荐语法高亮项目

如果你想要更丰富的高亮支持,可以使用第三方项目:

🛠️ scopatz/nanorc (GitHub)

安装方式:

git clone https://github.com/scopatz/nanorc.git ~/.nano
echo "include ~/.nano/*.nanorc" >> ~/.nanorc

支持几十种语言的高亮,包括 Markdown、JSON、Dockerfile、YAML 等。


🔁 六、应用更改

配置 .nanorc 后只需重新打开 nano 即可生效;无需重启系统。


✅ 示例 .nanorc 配置(整合)

## 行号 & 缩进
set linenumbers
set autoindent
set tabsize 4
set softwrap

## 鼠标和光标
set mouse
set constantshow
set positionlog

## 启用语法高亮
include "/usr/share/nano/*.nanorc"

下面是为 PythonShell 脚本(Bash)Markdown 创建的一套语法高亮方案,适用于 nano 编辑器。你可以将这些内容添加到你的 ~/.nanorc 文件中,也可以分别保存为 .nanorc 语法文件后通过 include 引用。


📂 一、目录结构建议(可选)

建议将语法文件单独放到一个目录中,例如 ~/.nano

mkdir -p ~/.nano

🐍 二、Python 高亮配置(~/.nano/python.nanorc

syntax "python" "\.py$"

# 关键词
color brightgreen "\<(def|class|return|if|else|elif|for|while|try|except|import|from|as|with|lambda|yield|assert|del|pass|break|continue|global|nonlocal|raise|finally|in|is|and|or|not)\>"

# 内置函数
color cyan "\<(print|len|range|open|int|str|list|dict|set|tuple|input|type|super|zip|map|filter|sum|min|max|abs|any|all)\>"

# 注释
color brightblack "#.*$"

# 字符串
color yellow "\"([^\"\\]|\\.)*\""
color yellow "'([^'\\]|\\.)*'"

# 数字
color magenta "\<[0-9]+(\.[0-9]+)?\>"

# 运算符
color red "[-+*/%=<>!&|^~]+"

🐚 三、Shell 脚本高亮(~/.nano/sh.nanorc

syntax "sh" "\.sh$"

# 注释
color brightblack "#.*$"

# 关键字
color brightgreen "\<(if|then|else|elif|fi|case|esac|for|in|while|do|done|until|select|function)\>"

# 命令
color cyan "\<(echo|exit|read|cd|pwd|mkdir|rm|touch|grep|sed|awk|find|chmod|chown|tar|cp|mv)\>"

# 变量
color magenta "\$\{?[_A-Za-z][_A-Za-z0-9]*\}?"

# 字符串
color yellow "\"([^\"\\]|\\.)*\""
color yellow "'([^'\\]|\\.)*'"

# 运算符
color red "[-+*/%=<>!&|^~]+"

📝 四、Markdown 高亮(~/.nano/markdown.nanorc

syntax "markdown" "\.md$"

# 标题
color bri
posted @ 2025-05-19 23:21  tomorgen  阅读(867)  评论(0)    收藏  举报