首页 / 资讯中心 / 文章详情

nano替代vim:Linux服务器上的轻量级文本编辑器实操指南

nano替代vim:Linux服务器上的轻量级文本编辑器实操指南 ★ FEATURED ARTICLE
每次看到新手在vim里满头大汗找退出方法我就觉得有必要认真聊聊nano这个命令。你在Linux服务器上改个配置、写个脚本第一反应往往是vim毕竟教程里永远都有它。但说实话vim那套模式切换思维不是每个人都吃得消尤其是你只想快速改一行参数、保存退出的时候。nano不一样它启动后直接进入编辑状态底部两行快捷键提示始终摆在那里不用背命令不会迷路。这篇文章我就把nano替代vim做日常编辑这件事讲透从基础操作到配置文件再到真实服务器场景里的经验教训给所有被vim吓退过的朋友一条更顺手的路。1. 为什么推荐nano代替vim —— 两个编辑器的本质差异1.1 vim让人又爱又恨的根源模式编辑vim最大的门槛在于“模式”这个设计。它把键盘输入分成了普通模式、插入模式、可视模式、命令行模式。打开vim之后你默认处在普通模式此时敲键盘并不会输入文字而是触发各种命令比如dd删除整行、yy复制整行、p粘贴。想输文字得先按i进插入模式想保存退出得先按Esc回到普通模式再敲wq。听起来不算复杂但对不熟的人来说就是一场灾难进不了插入模式乱按了一串字母文本没写进去反而把文件改得乱七八糟想退出又不知道怎么退最后只能直接关终端留下一脸茫然。我见过不少同事用vim只学会了三件事打开文件、按i、按Esc然后暴力关闭终端。更可怕的是如果你误触了某些命令比如gg跳到了第一行或者G跳到了最后一行又或者是数字加命令的复合操作你完全不知道屏幕上的内容是怎么变的。这个学习曲线对只想要“改文件”这个核心需求的用户来说太陡了。vim的底层逻辑是终身受益的它有宏录制、多窗口、拆分编辑、寄存器、可视化块操作一大堆强悍功能但前提是你愿意花几周甚至几个月去适应它。如果你只是偶尔在Linux下改改配置、写写脚本这个投入产出比并不划算。1.2 nano的哲学所见即所得快捷键贴在脸上nano走的是完全相反的路线。它打开文件后光标停在正文第一行你直接敲键盘就是输入文字没有任何模式区分。编辑区下方常驻两行快捷键提示比如帮你记住CtrlO保存、CtrlX退出、CtrlW搜索几乎所有常用操作都明明白白写在屏幕底部不需要背不需要查手册瞄一眼就能走。这种设计本质上是把编辑器的上手门槛压到最低让用户把注意力放在内容而不是工具本身。nano界面布局也有讲究。最上面一行是标题栏显示正在编辑的文件名以及“Modified”状态标记一眼就知道当前文件有没有被改动过。中间是正文编辑区区域跟VPS终端宽度一致默认情况下长行会折行显示鼠标也能点击定位前提是终端支持并且你启用了鼠标支持。最底部两行分别是主快捷键区和状态栏信息区按键组合前带有^符号的表示Ctrl键M-前缀表示Alt键或Esc键。比如说^G就是CtrlGM-U就是AltU。这套符号系统全世界的nano都一样换个发行版也不会有学习成本你在Ubuntu上学会了到CentOS上、到嵌入式板子里的busybox nano上体验基本不变。还有一点值得说nano在退出时的交互设计比vim“温柔”得多。你按CtrlX如果有未保存的修改它会问你是否保存输入Y或N即可然后回车确认文件名非常傻瓜化。如果你没做任何修改直接退出甚至不会多问一句。这种按步骤引导的交互对新手来说是实实在在的救命设计。1.3 适合把nano当主力的人群根据我自己的经验以下几类人非常适合把nano设为默认编辑器第一类是刚开始接触Linux的新手你需要一个不会让你战战兢兢的编辑环境先学会改配置文件、跑通任务再去深究编辑器本身。第二类是运维场景里需要快速改线上配置的人半夜三更有告警ssh登上去只想把nginx里的一行参数改掉重载没心思和你纠结按哪个模式键。第三类是偶尔在服务器上写脚本、做简单文本处理的开发者他们的主力开发环境在本地IDE或编辑器上服务器端只需要轻量工具完成小改动。第四类是嵌入式开发或者使用精简系统的场景设备上装不了完整桌面环境甚至装不了vim-enhanced但nano几乎无处不在包括busybox里都内置了精简版nano你学了就能用。当然我不主张所有人彻底抛弃vim。vim在处理大文件、复杂重构、多文件批量操作上仍然有不可替代的地位但“唯一指定vim”这种思路本身就不合理。工具是拿来解决问题的哪个顺手用哪个这跟投资里不把鸡蛋放一个篮子是同样的道理。2. nano核心操作五分钟上手2.1 打开、保存、退出的正确姿势打开文件的方法和vim差不多直接在终端输入nano /etc/nginx/nginx.conf如果文件不存在nano会自动创建一个空文件不会像vim那样提示一堆关于交换文件的警告。这是nano很贴心的细节在编辑新文件时状态栏会显示“New File”提示但不会中断你的编辑节奏。保存操作是快捷键序列先按CtrlO屏幕底部会出现File Name to write提示直接回车确认覆盖原文件即可。如果你想另存为其他名字在提示后面输入新路径再回车。我建议养成保存前停顿一秒看一眼底部状态栏的习惯在磁盘满了、写权限不足的情况下nano会在这里明确报错而不会悄悄丢数据。退出是CtrlX如果文件有未保存的修改系统会依次问Save modified buffer?你需要输入Y或N。如果选Y还会再让你确认文件名回车落实。很多人第一次用会被这三个连续提示弄懵其实逻辑很清晰先确定要不要保存再确定保存到哪里。这里有个小坑如果你的终端下按Ctrl没有任何反应一般是因为SSH会话被某种终端复用工具接管了键盘快捷键这在后文故障排查里我会细讲。除了交互式的保存和退出nano还支持启动参数直接关闭某些行为。我最常用的三条参数nano -l 文件名 # 打开时直接显示行号 nano -w 文件名 # 关闭长行自动折行适合改配置文件 nano -m 文件名 # 启用鼠标支持能用鼠标定位和选择你可以把它们组合起来用比如nano -lmw /etc/nginx/nginx.conf打开一个带行号、不折行、支持鼠标定位的配置文件。这几个参数解决了我实际工作中最头疼的两个痛点折行会导致配置文本错位难读没有行号则难以定位语法错误提示的位置。2.2 搜索、跳转、剪贴板操作在nano里搜索非常直白。按CtrlW输入关键词回车就会向下查找。如果想要继续搜下一个匹配项按AltW重复上一次搜索这个效率远高于vim里那套先按/再按n的机制尤其适合像nginx日志里快速定位某个IP或error关键字。跳转功能同样好用。按Ctrl_下划线会提示输入行号输入后回车立即跳到那一行。在debug程序报错时比如提示“脚本第48行有语法错误”你用nano打开脚本后按Ctrl_输入48回车光标就精准落在第48行开头。没有行号的nano就像开车没有仪表盘所以我的建议是记得加-l参数或者把行号写进配置后文详述。关于文本操作nano有一套独特的剪贴板逻辑和Windows/macOS里的CtrlC/CtrlV不太一样理解它需要记住一个核心概念剪切行的快捷键是CtrlK粘贴是CtrlU复制当前行是Alt6。这三个键是你在nano里做文本搬家的主要工具。想要选中一段文字做批量操作先按AltA或Ctrl^开始标记选区移动光标时选中的部分会高亮然后你可以按CtrlK把选区剪切掉或者按Alt6复制选区内容最后按CtrlU粘贴到别处。这套操作第一次用会有些不习惯但它比鼠标拖选稳定得多特别在纯字符终端里鼠标选择往往会受到终端自身的限制出现复制出来是乱码的问题。我还想提一点容易被忽略的在nano里CtrlV不是粘贴而是翻页下一页。CtrlY是上一页。这个设计和终端里的常规粘贴快捷键冲突刚开始用很容易闹笑话。建议直接记住在nano语境里CtrlV永远是向下翻页粘贴要用CtrlU——你粘贴的是nano内部剪贴板里的内容不是系统剪贴板的。如果你确实想从系统其他窗口复制文本粘贴进nano多数终端模拟器是CtrlShiftV或者直接用鼠标中键。2.3 多文件编辑和调用参数nano支持一次打开多个文件后续在文件之间切换也更加简单。命令行里直接写多个文件路径nano -l /etc/hosts /etc/hostname /etc/resolv.conf打开后默认停留在第一个文件。想要切换文件按Alt小于号过去Alt大于号下一个。如果你的键盘上没有明确的和也可以用Alt,和Alt.这对组合键效果一致。状态栏会同步提示当前文件名方便你区分。一个常见需求是在编辑过程中想临时查看另一个文件。我的做法是直接用CtrlR的插入功能按CtrlR后输入文件路径nano会把整个文件内容插入到当前光标位置。这在合并配置、拼接脚本片段时非常方便。但要注意插入的是文件原始内容如果你只想读不想改先按CtrlC查看光标所在位置信息后谨慎操作别顺手把内容混淆进了正式文件。nano的调用参数其实比大多数人以为的多尤其是对脚本化工作流有帮助的场景。比如-b参数会在保存时自动创建同名备份文件格式是filename~防止手滑覆盖重要配置-i参数启用自动缩进新起一行自动跟随上一行的缩进写Python脚本时特别省心-c参数持续显示光标的行号和列号位置信息常驻标题栏下方比按CtrlC临时查看方便不过会挤占一行显示区域。实测下来我建议把-lw作为默认参数其他配置写进nanorc文件全局生效而不是每次命令行都敲一遍。3. 配置一个更好用的nano3.1 .nanorc配置文件说明nano的配置文件是用户主目录下的.nanorc还有一个全局配置路径/etc/nanorc系统管理员可以在这里预设默认行为。我现在主要讲用户级配置因为它不依赖系统环境你在哪台机器上想带自己的偏好只需把.nanorc文件复制过去即可这一点对频繁切换服务器的人来说很实用。配置方式很简单每行一条指令注释以#开头。nano启动时按顺序加载全局配置和用户配置用户配置覆盖全局配置具体规则优先级为命令行参数大于用户配置大于系统配置。所以你可以放心在.nanorc里塞满自己的习惯遇到特殊需求用命令行参数临时覆盖。一个典型的用户配置大概长这样set linenumbers set tabsize 4 set autoindent set mouse set smooth set softwrap set backupdir /tmp include /usr/share/nano/*.nanorc这里面的每一行都对应一个具体的交互体验调整。我建议不要一次性全堆上去先用个三五条感觉到缺什么再补这样你能准确知道每条配置的实际效果。3.2 行号、缩进、换行边界行号是改造nano体验的第一优先级。在.nanorc里写下set linenumbers或者简写为set number。重新打开nano后左侧会出现行号栏光标所在行会以色块形式高亮。这个直接解决了定位问题配合Ctrl_跳转改配置文件时效率提升非常明显。不过行号栏会占掉大约5-6个字符宽度在屏幕比较窄的嵌入式板子上会挤压正文区域某些情况下反而影响阅读长行。此时可以用smooth模式代替它只显示当前光标位置的行号不占用常驻栏。我个人的体会是服务器上连接屏幕足够宽放心开常驻行号但在Orin Nano这类开发板通过串口连接、终端宽度被锁到80字符时我会临时去配置或加参数避免行号挤占配置内容。缩进设置方面set autoindent set tabsize 4autoindent让新行继承上一行缩进这在写Python、Shell脚本时很关键。tabsize 4是把Tab显示宽度设为4个空格但这里要注意nano里默认Tab键插入的是实际的制表符还是空格在不同版本里行为不一样。较新版本在autoindent后默认按tab就是插入制表符而很多代码规范要求空格代替制表符你需要额外加一句set tabstospaces把标签键输出转为空格。否则你在服务器上写一个Python脚本看起来缩进正常的代码一跑就报IndentationError排查半天发现是混入了制表符。换行边界是个容易踩坑的地方。nano默认会把超过屏幕宽度的长行自动折行显示注意这只是显示上的折行并不改变文件内容。但在编辑配置文件、代码时自动折行会出现在难以预料的位置比如脚本中间被显示折行复制文本时会把视觉折行变成真实换行破坏文件结构。解决方案是set nowrap这样长行就超出屏幕以滚动方式查看不会用假换行干扰。我的建议是编辑代码和配置文件一律set nowrap编辑纯文本笔记或markdown时可以让它自动折行。3.3 语法高亮与配色很多人以为nano不支持语法高亮只用过一次觉得光秃秃的就没再碰。实际上nano内置了一大堆语法定义文件只要你启用了include指令就会生效。在.nanorc里加入include /usr/share/nano/*.nanorc这条指令会把系统自带的所有语法高亮规则加载进来包括sh、python、c、c、nginx、html、json、yaml等常见类型。重新打开文件后关键词、字符串、注释都会以不同颜色显示辨识度提升了一个档次。在嵌入版nano或BusyBox里可能没有/usr/share/nano这个路径这时你需要确认发行版是否安装了nano-extra或nano-syntax-highlighting包有些精简系统需要手动安装才有语法文件。配色风格也可以自定义。na nano的配置项里set titlecolor、set numbercolor、set selectedcolor等可以调整各区域颜色。比如set titlecolor brightwhite,red set numbercolor green set selectedcolor white,magenta颜色描述格式是前景色,背景色可选值包括red、green、blue、yellow、white、black、magenta、cyan以及它们前面的bright前缀。我个人偏好深色底、亮色关键字和绿色行号长时间盯着不容易疲劳。配色这东西高度主观不需要照搬我按自己审美调就行。还有一个容易被忽视的选项是set minibar较新版本的nano支持精简标题栏模式用更少的空间显示文件信息set mouse则是鼠标支持会带来很多方便但也可能干扰复制比如你在xshell里想用鼠标拖选内容复制结果拖拽行为被nano捕获变成了选区操作。遇到这种冲突时临时用nano -m关闭鼠标在多数终端里就能正常走系统复制。4. 实际场景服务器运维与日常编辑4.1 修改系统配置文件nano在服务器上最常见的应用场景就是修改各类配置。我举个例子在一次排查nginx 502错误时需要改/etc/nginx/nginx.conf里的worker_processes和keepalive_timeout参数。ssh登录后执行nano -lw /etc/nginx/nginx.conf行号清楚长行不折行改动后CtrlO保存、CtrlX退出直接运行nginx -t验证语法再systemctl reload nginx。整个过程不到两分钟没有一次误操作。另一个高频场景是修改ssh服务的sshd_config。这个文件最大的特点是逐行注释很多配置项默认被注释掉。用nano打开后按CtrlW搜索PermitRootLogin直接修改保存退出后systemctl restart sshd。如果你之前用的vim在普通模式和插入模式之间反复切光标定位还总出错改个行都要小心翼翼很容易把其他配置误改。nano这种直接搜索、光标定位、修改、保存的四步流程极大降低了操作风险。还有编辑crontab计划任务也一样虽然crontab命令本身会调用系统默认编辑器打开计划任务文件但如果你设置了EDITOR环境变量指向nano整个过程会顺畅很多。这里有个重要的教训改系统关键配置文件前先备份一份用cp命令复制个.bak后缀文件改完再对比diff输出确认无误后再删除备份。尤其是nginx、sshd、systemd这类服务配置写错可能导致服务起不来多个备份就是多一条退路。4.2 让crontab、visudo默认启用nano很多系统默认编辑器是vi所以你执行crontab -e时弹出的往往是vim界面新手第一次看到直接手足无措。解决办法分两个层面。一是临时设置当前用户的编辑器环境变量在~/.bashrc里追加export EDITORnano export VISUALnano重新登录或source ~/.bashrc后生效。这样crontab -e、git commit时弹出的就是nano界面很直观。二是系统级修改在Debian系或Ubuntu上可以用update-alternatives命令切换sudo update-alternatives --config editor执行后会列出系统中所有可用的编辑器候选输入nano对应的数字回车系统默认编辑器就变了。CentOS/RHEL系列则通常依赖/etc/sysconfig下的编辑器符号链接或update-alternatives具体路径因发行版而异但思路一致。更精细的做法是把visudo的默认编辑器也改成nano因为visudo会强制校验sudoers文件语法用nano改动时同样有校验保护在/etc/sudoers.d里写个文件设置Defaults editor指向nano即可这个做法在大型团队服务器上非常实用。值得提醒的是虽然把默认编辑器改成nano能帮新手快速上手但有些自动化脚本会假设vi语法或依赖默认编辑器行为。比如某些安装脚本内嵌了printf内容并用ex或sed处理文件它不读取编辑器环境变量这种情况改不改默认编辑器都不会影响。而像git commit这类工具即使你设置了EDITORnano一般也只在未提供-m参数、需要交互编辑提交信息时才调用编辑器理解这一点能避免你疑惑“为什么有时弹出nano有时不弹”。4.3 哪些场景不要用nanonano并不是万能的有些场景硬上nano就是给自己添堵。首先是编辑超大文件比如几个GB的日志或数据文件nano会把整个文件读入内存效率低且容易卡死。这种场景应该用less查看、用grep定位、用sed做修改而不是打开整个文件。其次是做批量替换操作如果涉及多组复杂的正则替换nano的交互式搜索替换逐条确认比较繁琐远不如sed -i或perl -pi -e高效。再次是需要多窗口对比编辑旁路的场景虽然nano可以分割屏幕或多缓冲但功能远没有vim的分屏窗口、寄存器同步那么完备同时比对多个文件内容时我几乎不用nano。还有一种场景是编写文件时你需要时刻感知文件类型并触发各种自动格式化比如IDE层面的代码补全、lint检查、格式化插件nano里统统没有。你说嵌入式开发板上没有IDE只能命令行写C代码nano能胜任基础编写但工程级重构、跨文件变量跳转还得靠tags或外部工具配合。总之nano的定位就是快速轻量的文本手术刀你要把它当工程车用肯定不合适。5. 常见问题与排查技巧5.1 粘贴内容出现缩进错乱这是nano用户遇到最多的一个问题。从浏览器或者IDE里复制一段带缩进的代码粘贴进nano后每一行都多出一部分缩进代码整体向右偏移越往下越歪。原因是nano的autoindent机制光标换行后自动继承上一行缩进粘贴时每一行前的缩进都被当成新行继承的缩进累加了一遍。解决办法有两种。临时手段是粘贴前先按AltA清除当前标记状态然后直接用CtrlShiftV或鼠标中键粘贴很多终端模拟器在这种情况下不会逐行触发autoindent。但我实测下来最彻底的办法是粘贴前临时关闭autoindent要么用命令行参数nano -i启动要么在文件开头以标记方式粘贴。如果你的nano版本较老还没有响应CtrlShiftV那我建议你干脆先写到一个临时文件再用cp合并或CtrlR插入绕开交互粘贴的问题。另一个相关的坑是粘贴时末行会多一个空行或丢失最后一个回车。原因是终端粘贴协议在传输结束时可能带一个额外换行。改完后用cat或tail检查文件末尾如果是脚本文件注意最后一行是否少了换行符Shell脚本有时会因为少这个换行在最后一项处理上表现异常。这种细节在写crontab文件时尤其要注意因为crontab对行尾格式极其敏感。5.2 中文乱码与文件编码问题服务器上编辑中文配置文件时偶尔会出现乱码表现是文件内容原本正常nano打开后中文全部变成一堆奇怪的符号。这通常分两种情况。第一种是文件编码不是UTF-8比如Windows下常见的GBK/GB2312nano适合UTF-8遇到GBK就会显示成乱码。这时候用iconv转码iconv -f GBK -t UTF-8 input.txt output.txt文件内容转换后再用nano打开。第二种是终端本身使用的字符集和nano不一致比如LANG环境变量被设成POSIX或C此时nano可能把它当成默认ASCII处理中文显示必然有问题。在启动会话前执行export LANGen_US.UTF-8 export LC_ALLen_US.UTF-8或者直接nano -g在能够用localedef重新生成语言环境的服务器上确保系统有对应locale否则设置也白搭。排查时有个小技巧先head -c 100 file | xxd看文件头几个字节如果出现大量c4 e3 ba ce这类连续高位字节基本可以断定是GBK编码如果开头出现ef bb bf说明是带BOM的UTF-8nano对这些兼容尚可但某些脚本解释器看到BOM会报错需要去掉。去掉BOM可以用sed -i 1s/^\xEF\xBB\xBF//亲测有效。如果你要编辑的文件被系统其他工具用utf-8产生建议在.nanorc里强制set utf8这样新打开的文件统一按UTF-8处理能避免部分边界情况。但要小心强制UTF-8后若误开了一个GBK文件显示乱码的程度可能更重请灵活运用。5.3 行号不显示、快捷键被终端抢走行号不显示最可能是版本问题。早期nano版本2.3之前没有linenumbers特性而部分老旧系统的nano还是2.2版本。这时你写set linenumbersnano启动时会报unknown option然后忽略该配置。解决方案是升级nano或者说顺其自然。在很多内网环境里你没法随便升级那就按CtrlC查看光标当前行号能勉强替代。另一个可能性是配置文件加载顺序如果你在.nanorc里写了行号设置但被/etc/nanorc中的set nonumber指令覆盖优先级会冲突。此时用命令行参数nano -l就能确认是不是配置文件的问题若命令行生效而配置文件不生效说明是覆盖冲突去查全局配置把冲突行删掉即可。快捷键被终端抢走是个挺隐蔽的问题。比如你按CtrlS想保存文件结果终端没有任何反应甚至整个会话冻结因为CtrlS在很多终端模拟器中是XON/XOFF流控制会暂停屏幕输出。更强的坑是CtrlZ在某些终端复用工具里被定义为挂起或者切换窗口导致nano里想用AltZ若有用到完全失灵。解决办法是查看你终端工具的快捷键表把冲突的快捷方式改掉或者换一个不抢键的终端模拟器。以我常用的环境为例xshell里默认CtrlS是发送信号还是本地复制SecureCRT、MobaXterm又各不相同跨工具时都要重新试一遍。在SSH会话中还有个经典坑按方向键变成乱码字符比如出现^[[A。通常是因为TERM环境变量不对执行echo $TERM看看是不是xterm或xterm-256color不是则export TERMxterm试试绝大多数情况能修复。5.4 文件行尾^M处理你从Windows下编辑了一个脚本或配置文件传到Linux服务器上用nano打开发现每一行末尾都出现了一个^M符号执行脚本时会报“command not found”之类诡异的错误。这是因为Windows的换行符是CRLF即\r\nLinux只认LF即\n\r被显示成了^M。处理方式很多最简单的是用dos2unix命令直接转换dos2unix file如果系统没有这个工具sed也可以一行搞定sed -i s/\r$// file还有用tr删掉所有回车符的方式但要注意它会把文件里所有\r都删掉如果文件内容本身就包含\r字符会多删误删而sed这种只删行尾的方案相对安全。处理完后重新打开^M消失脚本执行恢复正常。这个看似琐碎的问题在运维里相当普遍尤其是你的同事或甲方习惯用Windows写脚本再传上服务器时几乎每次都要处理一遍。我现在习惯在编辑前先file命令看一眼文件类型它会直观提示ASCII text和CRLF line terminators的差异能提前发现问题。6. 我的实际使用体会6.1 从vim转到nano的心态变化我自己最早是个vim坚定支持者甚至花了不少时间配置各种.vimrc插件。但随着工作场景变化管理的主机多了、环境杂了我发现vim那套工作流在“快速改一行就退出”的场景下反而是负累。你想想深夜告警被叫醒ssh连上服务器脑子还迷迷糊糊哪还有余力去记vim的普通模式和命令组合而nano打开就能改底下提示像“菜谱”一样摆着完全不需要动用深层次记忆。后来我逐步把日常编辑都切到了nano只在必要时才用vim比如做跨文件复杂查找或者手动处理二进制文本。这个切换让我自己的操作失误明显减少也让我明白了工具选择不必有昔日情怀能稳定解决问题才是硬道理。6.2 最后分享一个配置模板如果你正准备从vim迁移到nano我可以直接给你一份我用了很久的.nanorc配置你复制到服务器上稍作调整就能用。它涵盖了行号、不折行、自动缩进、语法高亮、鼠标支持这些核心需求set linenumbers set nowrap set tabsize 4 set tabstospaces set autoindent set mouse set smooth set minibar set backupdir /tmp include /usr/share/nano/*.nanorc set titlecolor brightwhite,red set numbercolor green其中backupdir /tmp让nano在保存前把文件备份到/tmp目录既不污染源目录又给误操作留了余地。minibar是缩小标题栏释放出更多编辑行。我自己用下来的感受是这套配置在Ubuntu、Debian、CentOS上都稳定运行也覆盖了我在服务器上改配置、写脚本的绝大多数诉求。你也可以按需删减比如不习惯鼠标定位就删掉set mouse。配置这东西没有银弹自己试出来的才最顺手。
阅读完成 · 觉得有帮助?
咨询建站