精华内容
下载资源
问答
  • 文本编辑
    千次阅读
    2022-03-22 12:04:54

    vi和vim:是Linux中的文本编辑器,用来在Linux中创建、查看或编辑文本文件,就好像windows中的记事本一样。 vim是vi的增强版本,vi的绝大多数用法在vim中都可以使用。

    vi和vim的使用:

            一般模式:用vi或者vim命令打开文件(vim test.txt),进入了一般模式;可以查看文件的内容,并且可以通过上下左右键移动光标,查看文件的某一部分;但是不能编辑文件。

            编辑模式:在一般模式下,按i或者a键,进入编辑模式;可以编辑文件内容;但是不能保存编辑文件内容;按Esc键,可以返回到一般模式。

            命令模式:在一般模式下,按shift+:进入命令模式; 

                            输入:q!------不保存强制退出编辑器

                                        wq--------保存并且推出编辑器

                                       q-------------只是退出编辑器

    vi和vim编辑器的快捷键:

            1)复制当前行:在一般模式下,按yy,把光标所在行复制到粘贴板;按p,把剪切板中的内容粘贴到光标所在的下一行。

            2)复制当前行往下5行:在一般模式下,按5yy,把光标所在行往下5行复制到剪切板,按p,把剪切板中的内容粘贴到光标所在的下一行。

            3)在文本文件中查找关键字:在命令模式下,输入/关键字,回车。按n表示光标查找下一个关键字。

            4)删除光标所在的当前行:在一般模式下,按dd,删除光标所在的行。

            5)删除光标所在的行往下5行,在一般模式下,按5dd。

            6)撤销上次编辑的内容:在一般模式下,按u。

             7)显示行号:命令模式下,设置文本的行号,取消文件的行号,[命令行下(:set nu)和(:set nonu)]

       

                                                                 

                    

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Q

    更多相关内容
  • 本文实例讲述了Python实现的文本编辑器功能。分享给大家供大家参考,具体如下: wxpython实现的文本编辑器 效果如下: 主要功能: 1.编辑保存文本,打开修改文本 2.常用快捷键,复制,粘贴,全选等 3.支持撤销功能 ...
  • 文本编辑器 RP 原件库.rplib
  • 画布文本编辑器教程 为什么要写另一个编辑器? 令人惊讶的是,您几乎找不到关于创建适当,快速且功能完整的纯文本编辑器的信息。 所有可用的信息要么很旧,不能... 支持RTL文本,象形文字和垂直文本; 搜索; 语法高
  • 文本编辑器sakura

    2022-04-07 11:31:48
    sakura一个工作中常用的文本编辑器。非常方便
  • 文本编辑器,支持文本编辑,比较,FTP编辑,FTP上传下载,加密,十六进制编辑,列模式,回行显示,正则表达式,多行查找和替换,代码折叠,关键字高亮显示,编辑400GB的大文件,比较100GB的大文件,对超过1G的大文件...
  • 3D Text Editor汉化版是一款sketchup的3D文本编辑器插件,它具备了sketchup自带的编辑器不具备的二次编辑的能力,让用户可以随意编辑各种的3D文本内容,操作十分的简单。需要的朋友可以前来本站下载。 安装方法 本...
  • 可以如同offer在文字旁边插入图片,并且一样实现了拍照获取图片,已经获取本地图片的功能.
  • N++文本编辑器!!

    2018-11-20 12:26:22
    文本编辑器!
  • React Edit Text 这是一个用于 React 的可编辑文本组件。只需单击文本即可编辑!由 Brian Min 用 :red_heart: 制作 Demo 随意查看现场演示 安装 npm install react-edit-text --save 类型定义 npm install @types/...
  • MetroTextual是一个文本编辑器,灵感来自于微软的Metro设计方案。它的设计是视觉上吸引人的,好替代Windows记事本。您可以用它来阅读纯文本或富文本文件,而不管他们的Windows字符编码。
  • 手机端富文本编辑

    2018-08-28 17:08:23
    可用于手机端内容编辑,可以插入文字,更改文字样式,插入图片,链接等。简单易懂,内附实例demo
  • SuperTextReplace,超级批量文本替换,功能介绍: 1.完全绿色安装,单独的可执行文件,操作方便 2.段落文字的批量替换(整段文字的替换) 3.特征字符串之间的批量替换 4.对成对的特征字符串之间的字符提取功能的实现...
  • 自制富文本编辑

    2019-03-27 23:33:22
    html简单自制富文本编辑框,实现基本的文本操作,图片上传!
  • Java简单的文本编辑

    2021-03-17 18:05:31
    摘要:Java源码,文字字符,文本编辑器 Java简单的文本编辑器,仿记事本的部分功能,可以复制、剪切、粘贴文本,还可以新建、打开和保存文本等一些简洁的功能。
  • Java简易文本编辑

    2017-10-31 15:53:54
    文本编辑器实现功能较为简易,功能为新建,保存,打开,退出,修改背景颜色和字体颜色。图形界面基于swing开发工具包,使用该程序请先给IDE添加此包。
  • cad插件,用于属性文字转换成普通文字,快捷命令tag2txt,使用方便
  • 内容索引:VB源码,字符处理,文本编辑器,记事本 冰火天空——文本编辑器,支持自动换行功能,若使用,文本的某些格式和已自动换过行的文字在系统开启时无法编辑,取消则可以进行编辑文本文档程序。功能比较健全,...
  • Delphi开发的富文本编辑器源码,RichEdit1控件的使用,可以定义字体样式,文字颜色改变,字体选择,导入编辑RTF,WORD 文件。
  • WPS文本编辑器,可编辑world,execl,ppt,visio等文本信息,办公软件套装,可以实现办公软件最常用的文字编辑、表格、演示稿等多种功能,具有内存占用低、运行速度快、体积小巧、强大插件平台支持、免费提供海量在线...
  • Notepad++ 文本编辑

    2019-04-10 22:31:00
    一个最小、最简单的文本编辑器,notepad(记事本)是代码编辑器或WINDOWS中的小程序,用于文本编辑,在文字编辑方面与Windows写字板功能相当。是一款开源、小巧、免费的纯文本编辑器。Notepad内置支持多达 27 种语法...
  • Linux操作系统——vi文本编辑

    千次阅读 2021-11-09 19:06:40
    1.vi文本编辑器概述 与Unix相同,Linux本质上是一个文本驱动(text-driven)的操作系统。文本文 件就是全部由ASCII码字符及某种语言的编码字符构成的文件,不含有任何样式和格式信息。文本文 件可以被任何文本编辑器...

    1.vi文本编辑器概述

            与Unix相同,Linux本质上是一个文本驱动(text-driven)的操作系统。文本文 件就是全部由ASCII码字符及某种语言的编码字符构成的文件,不含有任何样式和格式信息。文本文 件可以被任何文本编辑器解释而不会出现乱码,还可以被所有程序操作和使用。在Linux系统中,文 本文件被广泛地用作系统配置文件和系统工具软件的操作对象。这使得用户可以在文本方式下完成所有的工作,如编写程序和命令脚本、读/写电子邮件、配置和管理系统等。而完成所有这些工作的基 本工具就是文本编辑器。因此,Linux的用户应当熟悉至少一种文本编辑器

    1.1 vi文本编辑器介绍

            Linux下的文本编辑器有ex、sed、vi和emacs等很多种。其中,vi是最基本的文本编辑工具。vi(visual)诞生于1978年,由柏克莱大学的Bill Joy编写。从其诞生至今,vi始终是所有Unix/Linux系统上必配的编辑器,甚至在DOS、Windows、Macintosh、OS/2乃至IBM大型机S/390系 统上都能见到vi的某个版本。目前Linux系统上流行的版本是vi增强版vim(vi improved)。vim是一个开放源代码软件,它在vi的基础上增强了功能,也更容易使用。现在许多Linux发行版中的vi就是vim。本书中所说的vi也兼指vim,但有一些选项可能只有vim支持。vi是一个全屏幕文本编辑器,具有文本编辑所需的所有功能。vi以高效和快捷著称,这是vi能够在编辑器领域中保持几十年领先地位的原因。以下介绍vi的几个突出特点。

    1.编辑功能强大

            vi的编辑功能十分强大,除通常的编辑功能外,vi还支持一些高级编辑特性,如正则表达式、宏和命令脚本。利用这些特性可以完成非常复杂的编辑任务,实现编辑的智能化和自动化。另一方面,vi的功能又十分专注,它只是一个编辑器,没有其他功能。Linux系统 提供了许多专门用途的工具,如排版、排序、流过滤、E-mail、编译等软件。vi可以和这些工具软件协同工作,从而实现几乎所有的文件加工处理任务。用一些小而精悍、功能专一的工具结合起来完成复杂的处理功能,这正是Unix的设计哲学。

    2. 适用于各种版本的Unix/Linux系统  

            vi是Unix/Linux系统的标准文本编辑器,几乎每一台Unix/Linux系统上都会有vi,这是其他编辑器无法相比的。  

    3. 适用于各种类型 的终端  

            vi得以广泛应用的原因之一是它对终端设备的广泛适应性。不管是只有打字机键盘加Esc 键的简单终端,还是受通信限制的远程终端,或是配有完备的功能键和鼠标的现代化终端,都可以很好地支持vi完成文本编辑工作。

    4. 使用灵活快捷  

            广泛适应性带来的问题是繁多的命令。对于同 一项编辑操作,vi提供了许多不同的命令。vi的命令都很简练,往往是单个字符或少数几个字符的组合。对初学者来说,使用这些命令并不方便,甚至过于复杂。但对于熟练的用户来说,更多的选择意味着更大的自由,简单的命令意味着更少的击键次数。正因为如此,vi被看做是Linux开发人员和系 统管理员的编辑利器。初学者经过一段时间的使用,也会逐渐习惯vi的操作方式,并形成自己特有的操作风格。

    1.2 vi的工作模式

            vi是一个多模式的软件,它有三种工作模式。在不同的工作模式下,它对输入的内容有不同的解释。  

    1. 命令模式(Command mode)  

            在命令模式下,输入的任何字符都作为命令来解释 执行,屏幕上不显示输入内容。命令模式用于完成各种文本修改工作。  

    2. 输入模式(Insert mode)  

            在输入模式下,输入的任何字符都将作为文件的内容被保存,并显示在屏幕上。输入模式用于完成文本录入工作。

    3. 末行模式(Last line mode)  

            末行模式也称为ex转义模式。在末行模式下 ,光标停留在屏幕的最末行,在此接收输入的命令并执行。末行模式用于执行一些全局性操作,如文件操作、参数设置、查找与替换、拷贝与粘贴、执行Shell命令等。  

            在文本编辑过程中,用户可 以控制vi在这三种工作模式之间进行切换,完成各种编辑工作。三种模式之间的转换关系如图所示。

     1.3 vi的启动与退出

            在Shell下输入vi命令后,便进入全屏幕编辑环境,命令格式是:vi [文件名]

            vi的启动过程是:先建立一个编辑缓冲区,若指定了文件且该文件已存在,则将其内容读到编辑缓冲区中;若指定的文件不存在,则建立此文件。然后将光标定位在第1行第1列的位置上。

            vi启动后首先进入命令模式。此时,用户可以使用vi的编辑命令进行文本的输入和修改。

            注意:编辑命令只是修改调入编辑缓冲区中的文件的副本, 文件本身不会被修改。所以,编辑完成后,要用:wq命令将修改后的内容保存到文件中并退出vi。若此次运行未对原文件作任何修改,则可用:q命令退出。

    2. vi基本命令

            vi的命令繁多,但通常的编辑工作只需要掌握其中一小部分命令。而 对于一些特殊的操作或编辑任务,总能够在vi手册中找到适当的命令。  

            vi的常用编辑命令分为以下几类:

    • 屏幕翻滚命令
    • 移动光标命令
    • 插入与删除命令
    • 修改与替换命令
    • 拷贝与粘贴命令
    • 复原与重复命令

            vi的命令通常是简单的字符(如a、s、c)或是字符组合(如dw、cc),还有少数几个控制键组 合字符(如Ctrl+u)。这就是说,仅仅通过普通键盘就可以实现所有编辑工作,完全不需要用鼠标,也不倚赖于某些控制键。比起使用鼠标和复杂控制组合键来说,键入字符命令的速度要快得多。因此,熟练使用这些字符命令能够提高编辑的效率。

            尽管只用字符命令就可以完成所有编辑工作,vi还是提供了对现代键盘上的编辑键的支持。适当地使用这些熟悉的按键将使编辑操作更加轻松。

    按键命令模式输入模式末行模式
    Home移动光标到行的最前面移动光标到行的最前面移动光标到行的最前面
    End移动光标到行的最后面移动光标到行的最前面移动光标到行的最前面
    PageDown向下翻页移动光标到行的最前面向下翻找历史命令
    PageUp向上翻页移动光标到行的最前面向下翻找历史命令
    Delete删除光标位置的字符移动光标到行的最前面移动光标到行的最前面
    Insert进入输入模式替换-插入无效
    Backspace光标前移一个字符删除光标前的字符删除光标前的字符
    Space光标后移一个字符空格空格
    Enter 光标下移一个字符换行提交命令
    ↑↓←→按箭头方向移动光标按箭头方向移动光标找历史命令

            以下分类介绍常用的vi命令。注意:在命令模式下输入的字符都被vi解释为命令,不在屏幕上显示。若输入的是非法命令则响铃报警。此外,vi的命令是区别大小写的,即大写字母和小写字母代表的是不同的命令。

    2.1 屏幕翻滚

            当编辑的文件比较大时,使用翻屏命令可以快速地将要编辑的区域调入屏幕显示区。用PageDown和PageUp键可以方便地实现上下翻屏,但在有些场合下需要用命令来实现更灵活的翻屏操作。常用的几个翻屏命令介绍如下。

            翻屏命令:

    Ctrl+u:        向上翻半屏。

    Ctrl+d:        向下翻半屏。

    Ctrl+f:        向下翻一屏。同PageDown键。

    Ctrl+b:        向上翻一屏。同PageUp键。

    [n]z+Enter:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部

    2.2 光标定位于移动

            在输入或修改文本前,应先将光标移到适当的位置。vi不支持用鼠标移动光标的方式,但以下命令可以更加高效地定位和移动光标。

            光标定位命令:  

    0           光标移至行 首。同Home键。  

    ^           光标移至行首第1个非空格字符。  

    $           光标移至行尾。同End键。  

    [n]G      光标移到第n行,未指定n时移到末行。  

    [n]|        光标移到第n列,未指定n时移到首列。  

    H、M、L      光标移到屏幕首、中、尾行行首。

            光标移动命令:

    h、j、k、l        光标向左、下、上、右移一个字符。同箭头键。

    b、w                光标移到上一个词、下一个词首。

    e                      光标移到词尾。

    (、)                  光 标移到句首、句尾。

    {、}                  光标移到段首、段尾。

            注:以上光标移动命令前带数字n时,表示 重复移动n次。如:2h为左移2格,3e为移到后面第3个词的词尾

    2.3 文本输入于删除

    1. 文本的输入

             在输入文本内容之前,应先将光标定位在要输入的位置上,然后执行插入命令 ,进入输入模式。处于输入模式时,屏幕底部会显示“—insert—”提示,表示后续的输入都作为文件的输入内容。输入完成后按Esc键就可返回命令模式。

            插入(insert)命令都是单字符命令,可以灵活 地实现在当前光标位置的前、后、行首、行尾、上一行、下一行开始输入

            插入命令:

    a、A        在光标位置后、行尾后开始插入。

    i、I           在光标位置前、行首前开始插入。i的 作 用与Insert键相同。

    o、O        在光标所在行之后、光标所在行之前的新行开始插入。

    2. 文本的删除

            删除(delete)文本的最简单方法是将光标移到要删除的字符上,然后,每按一 下x键或Delete键就会删掉一个字符。若要删除的文本较多时,可以使用下面更加灵活的删除命令。

            删除命令:

    x、X       删除光标处、光标前的字符。x的作用与Delete键相同。

    dd           删除光标所在的行。

    D            删除光标右面的文本。

    J             删除当前行尾的换行符,使当前行与下 一行合并为一行。

    d+定位符  删除从光标位置到指定位置范围内的字符。常用的有:

    d0、d^        删除光标左面的文本。0或^代表行首。

    d$                删除光标右面的文本。$代表行尾。

    dG               删除光标所在行之后的所有行。G代表最后一行。

    db                删除光标处前的字符直到词 首。b代表词首。

    de                删除光标处的字符直到词尾。e代表词尾。

    dw               删除光标处的字 符直到下一个词的词首。w代表下一   词词首。

            注:以上命令前带数字n时,表示删除的范围扩大n倍。如:3dd为删除3行,2de为删除从光标开始的2个词。

    2.4 文本修改与替换

    1. 文本的修改

             文本修改(correct)是指改写一部分文本的内容,修改的过程是:先删除指定范围内的文本,然后插入新文本,最后用Esc键结束插入。以下介绍几个常用的修改命令。  

            修改命 令:

    cc                    修改光标所在的行。

    C                     修改光标处到行尾的文本。

    c +定位符        修改光标到指定范围内的文本。常用的有:   

    c0、c^        修改光标左面的文本。   

    c$               修改光标右面的文本。

    cG               修改光标所在行之后的所有行。

    cb                修改光标处前的字符直到词首。

    cw                修改光标处的字符直到词尾。

    cl                  修改光标处的字符。

            注:以上命令前带数字n时,表示修改的范围扩大n倍。如:5cc为修改从光标所在行开始的5行,3cw为修改从光标开始的3个词。

    2. 文本的替换与替代

            替换(replace)是指用一个字符替换另一个字符,这是一种覆盖操作,替换后文本的长度保持不变。替代(substitute)则是指用多个字符取代一个字符或一行,是一个先删除后插入的操作。通常情况下,替代后的文本长度会发生变化。以下介绍常用的替换与替代命令。  

            替换与替代命令:  

    r        用输入的字符替换光标处的字符。  

    R        用输入的文本逐个替换从光标处开始的各个字符,直到按下Esc键。  

    s        用输入的文本替代光标处的字符,用Esc键结束输入,等同于cl。  

    S        用输入的文本替代光标所在的行,用Esc键结束输入,等同于cc。

    2.5 文本拷贝与粘贴

            拷贝(copy)操作是将光标处的文本复制到一个缓冲区中(类似于Windows中的剪 贴板);粘贴(paste)操作是将缓冲区中的内容插入到光标处。以下介绍常用的拷贝粘贴命令。  

            拷贝与粘贴命令:  

    yy                拷贝光标所在行至缓冲区。  

    y+定位符     拷贝光标到指定范围内的文本。常用的有:   

    y0、c^         拷贝光标左面的文本。   

    y$                拷贝光标右面的文本。   

    yG               拷贝光标所在行之后的所有行。   

    yb                拷贝光标处的字符直到词首。   

    yw                拷贝光标处的字符直到词尾。

     

    2.6 撤销与重做

            撤销(undo)即消除上一个命令所做的修改,恢复到命令执行前的样子。重做(redo)就是重复执行上一个命令。  

            撤销与重做命令: 

    u 撤销上一个命令所做的修改。  

    U 撤销最近针对一行所做的全部修改。在对一行连续做了多处修改后,用此命令可以一次恢复全行。  

    .   重复前一个命令。  

    利用撤销和重做命令可以提高编辑的效率,减少击键次数。

            

    3. vi常用末行命令

            在命令模式下,输入“:”、“/”或“?”字符(称为ex转义字符)都将进入末行模式,随后的输入被解释为行命令,在屏幕末行显示。输入完成后按Enter键执行。末行命令执行结束后返 回命令模式,或退出vi。  

            末行命令主要有以下几类:

    • 字符串搜索与替换命令;
    • 文件操作与退出命令;
    • 其他命令;

    3.1 搜索与替换命令

    1. 字符串搜索

            要在一个大文件中查找某个字符串,可以用字符串搜索命令。执行搜索命令后 ,光标将停留在第一个匹配字符串的首字符处。按“n”或“N”则移到下一个匹配字符串之首。如果不存在匹配的字符串,则会在末行上显示“找不到模式”。

            搜索命令有以下两种:  

    /模式        从光标处向后 搜索与指定模式匹配的字符串。按n向后继续找。  

    ?模式        从光标处向前搜索与指 定模式匹配的字符串。按N向前继续找。  

            例如:执行/and命令,光标将从当前位置移到后面第一个“and”的字符“a”上。按n移到下一个“and”上。当搜索到文件尾时,再按n则返回到 文件头继续搜索。

    2. 字符串替换

            字符串替换使用s命令,它的功能是在指定的行中搜索与指定模式相匹配的字符串,并用另一个字符串替换它。  

            s命令的一般格式是::[n1,n2]s/p1/p2/[g][c]  

            其中n1, n2 表示目标行的行号范围,可以用“%”代表所有行;未指定范围时,目标行就是光标所在的当前行。p1 是用做搜索的字符串模式,p2是用做替换的字符串模式。模式中可以用“^”代表行首,“$”代表行尾。s命令可以带g和c选项。g表示替换目标行中所有匹配的字符串,没有g的话则只替换目标行中第一个 匹配的字符串。选项c表示替换前要求用户确认。

    3. 全局命令

            全局命令g(global)的功能是在全文中搜索含有与指定模式相匹配的字符串的行,对匹配的行做标记。g命令的格式是:

    :g/p1        搜索所有包含p1字符串模式的行。

    :g!/p1       搜索所有不包含p1字符串模式的行。

            例如::g/and命令将找出所有含有“and”的行;:g!/and/命令找出所有不含“and”的行。 vi的许多末行命令都是针对行的编辑命令。g命令可以与这些面向行的命令联合使用,它的作用是修饰这些命令,为其确定满足某个条件的目标行。在g命令 的修饰下,这些行编辑命令就可用来完成面向全文的、按模式筛选的编辑操作。g命令与其他命令联 合使用的格式是:

    :g/p1/        命令对所有包含p1的行执行指定的命令。  

    :g!/p1/       命令对所有不包含p1 的行执行指定的命令。  

            例如:p命令的功能是显示行,:g/and/p命令将显示所有含有“and”的行;d命令的功能是删除行,:g!/Note/d命令将删除所有不含“Note”的行。

    4. 全局替换

            s命令是面向行的字符串替换命令。s命令经常与g命令联合使用,实现更灵活更细致的全局替换功能。  

            全局替换命令的一般格式是:

    g命令/s命令。其含义是:先用g命令在文件中搜索含有某个模式的行,并做标记,然后用s命令对所有有标记的行执行搜索和替换。  

            常用的 全局替换命令的格式有:  

    :g/p1/s/p2/p3/g 将文件中所有含有p1的行中的p2用p3替换。  

    :g!/p1/s/p2/p3/g 将文件中所有不含有p1的行中的p2用p3替换。

    :g/p1/s//p2/g         将文件中所有的p1用p2替换。这里:g/p1/s//p2/g 是:g/p1/s/p1/p2/g的简写,即当s命令的搜索模式与g 命令的搜索模式相同时,可以省略s中的搜索模式。 注意:此处//之间没有空格。

    3.2 文件操作与退出命令

            文件操作命令包括读文件和写文件操作。读文件就是将文件的内容读入编辑缓冲区中,写文件就是将编辑缓冲区的内容保存到文件中。在退出vi时,可以选择是否保存文件。以下是常用的退出和文件操作命令:

    :w [文件名]        写入指定文件。若未指定文件则写入当前文件,即vi启  动时打开的文件。

    :q                      未修改原文件,不保存文件,直接退出。

    :wq、:x             保存文件并退出。

    :q!                     放弃修改,不保存文件,退出。

    :e!                     放弃修改,编辑区恢复为文件原样。

    :e 文件名          打开指定的文件,调入编辑区。

    :r 文件名           读入指定的文件,将文件内容插入到光标位置。

    :f                       在屏幕末行显示文件相关信息。

    3.3 其他常用命令

    1. 行编辑命令

            行编辑命令用于对指定的行进行编辑。在指定行范围时,可以用“.”代表当前行,用“$”代表最后一行,用“%”代表所有行。常用的行编辑命令如下:

    :n                 跳至第n行。

    :n1,n2con3  将第n1至n2行之间的内容拷贝到第n3行下。如::3,7co$表示将第3到7行的文字复制到文件末尾处。  

    :n1,n2mn       将第n1至n2行之间的内容移至第n3行下。如::.m10表示将当前行移动到第10行下。  

    :n1,n2d       将第n1至n2行之间的内容删除。如::3,7d表示删除第3到7行。  

    :p                显示当前行的内容。  :nu 显示当前行的行号和内容。

    2. 执行Shell命令

            用vi编辑文件时,可以在不退出vi的情况下执行Shell命令。执行命令期间vi暂时挂起,待命 令执行结束后返回vi继续运行。

            执行Shell命令的格式是:

    :!        命令执行指定的Shell命令。

    3. 设定vi选项

             vi是一个高度可定制的编辑器,用户可以通过设置vi的选项来规定vi的一些外观和行为特性,使其满足特定的需求。设定vi选项的方法之一是使用set命令。

            常用的选项如下:

    :set all        显示所有选项。

    :set ai、:set noai          设定、取消自动缩进。

    :set nu、:set nonu        设定、取消行号显示

    :set hlsearch                 设定高亮显示搜索到 的字符串。

    :set nohlsearch             取消高亮显示搜索到的字符串。

    :set ic、:set noic           设定、取 消搜索命令中忽略大小写。

    展开全文
  • 小程序富文本编辑

    2019-02-15 14:06:32
    这个是小程序富文本编辑器,可以编辑文字图片混排的效果,网上找的资源,希望能帮到有需要的人
  • 微信小程序 富文本编辑器 editor

    千次阅读 2021-05-28 18:07:30
    文本编辑器,可以对图片、文字进行编辑编辑器导出内容支持带标签的 html和纯文本的 text,编辑器内部采用 delta 格式进行存储。 通过setContents接口设置内容时,解析插入的 html 可能会由于一些非法标签导致...

    完整微信小程序(Java后端) 技术贴目录清单页面(必看)

    富文本编辑器,可以对图片、文字进行编辑。

    编辑器导出内容支持带标签的 html和纯文本的 text,编辑器内部采用 delta 格式进行存储。

    通过setContents接口设置内容时,解析插入的 html 可能会由于一些非法标签导致解析错误,建议开发者在小程序内使用时通过 delta 进行插入。

    富文本组件内部引入了一些基本的样式使得内容可以正确的展示,开发时可以进行覆盖。需要注意的是,在其它组件或环境中使用富文本组件导出的html时,需要额外引入,并维护<ql-container><ql-editor></ql-editor></ql-container>的结构。

    图片控件仅初始化时设置有效。

    相关 api:EditorContext

    属性类型默认值必填说明最低版本
    read-onlybooleanfalse设置编辑器为只读2.7.0
    placeholderstring提示信息2.7.0
    show-img-sizebooleanfalse点击图片时显示图片大小控件2.7.0
    show-img-toolbarbooleanfalse点击图片时显示工具栏控件2.7.0
    show-img-resizebooleanfalse点击图片时显示修改尺寸控件2.7.0
    bindreadyeventhandle编辑器初始化完成时触发2.7.0
    bindfocuseventhandle编辑器聚焦时触发,event.detail = {html, text, delta}2.7.0
    bindblureventhandle编辑器失去焦点时触发,detail = {html, text, delta}2.7.0
    bindinputeventhandle编辑器内容改变时触发,detail = {html, text, delta}2.7.0
    bindstatuschangeeventhandle通过 Context 方法改变编辑器内样式时触发,返回选区已设置的样式2.7.0

    编辑器内支持部分 HTML 标签和内联样式,不支持classid

    支持的标签

    不满足的标签会被忽略,<div>会被转行为<p>储存。

    类型节点
    行内元素<span> <strong> <b> <ins> <em> <i> <u> <a> <del> <s> <sub> <sup> <img>
    块级元素<p> <h1> <h2> <h3> <h4> <h5> <h6> <hr> <ol> <ul> <li>

    支持的内联样式

    内联样式仅能设置在行内元素或块级元素上,不能同时设置。例如 font-size 归类为行内元素属性,在 p 标签上设置是无效的。

    类型样式
    块级样式text-align direction margin margin-top margin-left margin-right margin-bottom padding padding-top padding-left padding-right padding-bottom line-height text-indent
    行内样式font font-size font-style font-variant font-weight font-family letter-spacing text-decoration color background-color

    Bug & Tip

    1. tip: 使用 catchtouchend 绑定事件则不会使编辑器失去焦点(2.8.3)
    2. tip: 插入的 html 中事件绑定会被移除
    3. tip: formats 中的 color 属性会统一以 hex 格式返回
    4. tip: 粘贴时仅纯文本内容会被拷贝进编辑器
    5. tip: 插入 html 到编辑器内时,编辑器会删除一些不必要的标签,以保证内容的统一。例如<p><span>xxx</span></p>会改写为<p>xxx</p>
    6. tip: 编辑器聚焦时页面会被上推,系统行为以保证编辑区可见

    示例代码

    在开发者工具中预览效果

    editor.wxml

    <view class="container" style="height:{{editorHeight}}px;">
      <editor id="editor" class="ql-container" placeholder="{{placeholder}}" bindstatuschange="onStatusChange" bindready="onEditorReady">
      </editor>
    </view>
    
    <view class="toolbar" catchtouchend="format" hidden="{{keyboardHeight > 0 ? false : true}}" style="bottom: {{isIOS ? keyboardHeight : 0}}px">
      <i class="iconfont icon-charutupian" catchtouchend="insertImage"></i>
      <i class="iconfont icon-format-header-2 {{formats.header === 2 ? 'ql-active' : ''}}" data-name="header" data-value="{{2}}"></i>
      <i class="iconfont icon-format-header-3 {{formats.header === 3 ? 'ql-active' : ''}}" data-name="header" data-value="{{3}}"></i>
      <i class="iconfont icon-zitijiacu {{formats.bold ? 'ql-active' : ''}}" data-name="bold"></i>
      <i class="iconfont icon-zitixieti {{formats.italic ? 'ql-active' : ''}}" data-name="italic"></i>
      <i class="iconfont icon-zitixiahuaxian {{formats.underline ? 'ql-active' : ''}}" data-name="underline"></i>
      <i class="iconfont icon--checklist" data-name="list" data-value="check"></i>
      <i class="iconfont icon-youxupailie {{formats.list === 'ordered' ? 'ql-active' : ''}}" data-name="list" data-value="ordered"></i>
      <i class="iconfont icon-wuxupailie {{formats.list === 'bullet' ? 'ql-active' : ''}}" data-name="list" data-value="bullet"></i>
    </view>
    

    editor.js

    Page({
      data: {
        formats: {},
        readOnly: false,
        placeholder: '开始输入...',
        editorHeight: 300,
        keyboardHeight: 0,
        isIOS: false
      },
      readOnlyChange() {
        this.setData({
          readOnly: !this.data.readOnly
        })
      },
      onLoad() {
        const platform = wx.getSystemInfoSync().platform
        const isIOS = platform === 'ios'
        this.setData({ isIOS})
        const that = this
        this.updatePosition(0)
        let keyboardHeight = 0
        wx.onKeyboardHeightChange(res => {
          if (res.height === keyboardHeight) return
          const duration = res.height > 0 ? res.duration * 1000 : 0
          keyboardHeight = res.height
          setTimeout(() => {
            wx.pageScrollTo({
              scrollTop: 0,
              success() {
                that.updatePosition(keyboardHeight)
                that.editorCtx.scrollIntoView()
              }
            })
          }, duration)
    
        })
      },
      updatePosition(keyboardHeight) {
        const toolbarHeight = 50
        const { windowHeight, platform } = wx.getSystemInfoSync()
        let editorHeight = keyboardHeight > 0 ? (windowHeight - keyboardHeight - toolbarHeight) : windowHeight
        this.setData({ editorHeight, keyboardHeight })
      },
      calNavigationBarAndStatusBar() {
        const systemInfo = wx.getSystemInfoSync()
        const { statusBarHeight, platform } = systemInfo
        const isIOS = platform === 'ios'
        const navigationBarHeight = isIOS ? 44 : 48
        return statusBarHeight + navigationBarHeight
      },
      onEditorReady() {
        const that = this
        wx.createSelectorQuery().select('#editor').context(function (res) {
          that.editorCtx = res.context
        }).exec()
      },
      blur() {
        this.editorCtx.blur()
      },
      format(e) {
        let { name, value } = e.target.dataset
        if (!name) return
        // console.log('format', name, value)
        this.editorCtx.format(name, value)
    
      },
      onStatusChange(e) {
        const formats = e.detail
        this.setData({ formats })
      },
      insertDivider() {
        this.editorCtx.insertDivider({
          success: function () {
            console.log('insert divider success')
          }
        })
      },
      clear() {
        this.editorCtx.clear({
          success: function (res) {
            console.log("clear success")
          }
        })
      },
      removeFormat() {
        this.editorCtx.removeFormat()
      },
      insertDate() {
        const date = new Date()
        const formatDate = `${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`
        this.editorCtx.insertText({
          text: formatDate
        })
      },
      insertImage() {
        const that = this
        wx.chooseImage({
          count: 1,
          success: function (res) {
            that.editorCtx.insertImage({
              src: res.tempFilePaths[0],
              data: {
                id: 'abcd',
                role: 'god'
              },
              width: '80%',
              success: function () {
                console.log('insert image success')
              }
            })
          }
        })
      }
    })
    
    

    editor.json

    {
      "navigationBarTitleText": "发表文章",
      "disableScroll": true
    }
    

    editor.wxss

    @import "../common/lib/weui.wxss";
    @import "./assets/iconfont.wxss"
    
    .container {
      position: absolute; 
      top: 0; 
      left: 0; 
      width: 100%;
    }
    
    .ql-container {
      box-sizing: border-box;
      width: 100%;
      height: 100%;
      font-size: 16px;
      line-height: 1.5;
      overflow: auto;
      padding: 10px 10px 20px 10px;
      border: 1px solid #ECECEC;
    }
    
    .ql-active {
      color: #22C704;
    }
    
    .iconfont {
      display: inline-block;
      width: 30px;
      height: 30px;
      cursor: pointer;
      font-size: 20px;
    }
    
    .toolbar {
      box-sizing: border-box;
      padding: 0 10px;
      height: 50px;
      width: 100%;
      position: fixed;
      left: 0;
      right: 100%;
      bottom: 0;
      display: flex;
      align-items: center;
      justify-content: space-between;
      border: 1px solid #ECECEC;
      border-left: none;
      border-right: none;
    }
    
    
    

    运行效果(请用真机调试):

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tAue7eNg-1622196446094)(image-20210528104114369.png)]

    微信搜一搜【java1234】关注这个放荡不羁的程序员,关注后回复【资料】有我准备的一线大厂笔试面试资料以及简历模板。

    展开全文
  • N++文本编辑

    2015-05-06 10:17:00
    pad++是 Windows 操作系统下的一套非常有特色的自由软件的纯文字编辑器(许可证:GPL),有完整的中文化接口及支持多国语言编写的功能(UTF8 技术)。它的功能比 Windows 中的 Notepad(记事本)强大,除了可以用来制作一般...
  • linux 文本编辑器Text editors play a major role for Linux users. Whether it is setting up user instructions, editing configuration files or writing code scripts to run on your system, everyone has a ...

    linux 文本编辑器

    Text editors play a major role for Linux users. Whether it is setting up user instructions, editing configuration files or writing code scripts to run on your system, everyone has a text editor which suits their needs better than others.

    文本编辑器对于Linux用户起着重要作用。 无论是设置用户指令,编辑配置文件还是编写代码脚本以在系统上运行,每个人都有一个文本编辑器,该文本编辑器比其他人更适合自己的需求。

    Everyone has a favorite editor based on features and functionality. But with numerous options available to choose from, it becomes tough to find the best text editor which suits you. Today, we list five of the best text editors in Linux and why they might be the best choice for you.

    每个人都有基于功能的收藏夹。 但是,由于有众多选项可供选择,因此很难找到最适合您的文本编辑器。 今天,我们列出了Linux中最好的五个文本编辑器,以及为什么它们可能是您的最佳选择。

    1. VIM –最先进的文本编辑器 (1. VIM – The most advanced text editor)

    Vim With Plugins 1
    Vim With Plugins
    带插件的Vim

    Leading our line for the best text editors in Linux is the VIM text editor. Developed by Bram Moolenaar, VIM is one of the most commonly used text editors in the Linux world. It is based on the old UNIX vi text editor, so far as the name, VIM refers to ‘Vi IMproved’. The VIM text editor offers features like syntax highlighting, split-screen functionality, automatic indentation, session tabs, and digraph input.

    VIM文本编辑器是Linux上最好的文本编辑器的领先产品。 VIM由Bram Moolenaar开发,是Linux世界上最常用的文本编辑器之一。 它基于旧的UNIX vi文本编辑器,VIM的名称简称为“ Vi IMproved”。 VIM文本编辑器提供的功能包括语法突出显示,分屏功能,自动缩进,会话选项卡和有向图输入。

    Beginners may usually find VIM require some effort to get used to. But if you want a powerful editor with advanced options and features, VIM is the choice for you.

    初学者通常可能会发现VIM需要一些努力来习惯。 但是, 如果您需要功能强大且具有高级选项和功能的编辑器,则VIM是您的选择。

    VIM is available both as a GUI application and as a command-line utility. Available since 1991, VIM is the most commonly used text editor for Linux system admins across the globe for their work. Vim can become whatever you want it to be. With the innumerable plugins and extensions, your editor can look and perform like any other GUI editor.

    VIM既可以用作GUI应用程序,也可以用作命令行实用程序。 自1991年以来,VIM是全球Linux系统管理员最常使用的文本编辑器。 Vim可以成为您想要的任何东西。 借助无数的插件和扩展,您的编辑器可以像其他任何GUI编辑器一样外观和执行。

    Install VIM with the following command:

    使用以下命令安装VIM:

    
    sudo apt install vim
    

    2. Atom – 21世纪最佳文本编辑器 (2. Atom – Best text editor of 21st century)

    Atom Editor 1
    Atom Editor
    原子编辑器

    While VIM is a classic in the debate of text editors, people often discuss the need for a new and powerful editor. This is where the Atom comes in. Developed by GitHub in 2015, Atom has soared into the popularity charts soon after its launch. The developers label Atom as the “hackable text editor for the 21st century”.

    尽管VIM是文本编辑器争论的经典之作,但人们经常讨论对新的强大编辑器的需求。 这就是Atom的用武之地。Atom由GitHub在2015年开发,在发布后不久便Swift进入人气榜。 开发人员将Atom标记为“ 21世纪可入侵的文本编辑器”。

    And they say this rightly so as no other text editor developed this century comes even close to the reputation that Atom holds in the Linux community today. It brings you to the deep end of text editors. The features available with Atom include package manager, multi-pane interface, file system browser and auto-completion

    他们说的很对,因此,本世纪没有其他文本编辑器能与Atom在当今Linux社区中享有的声誉相提并论。 它带您深入了解文本编辑器。 Atom可用的功能包括程序包管理器,多窗格界面,文件系统浏览器和自动完成

    Like VIM, Atom comes both as a GUI application and a command-line utility. It is not for people whose only use of a text editor is to edit configuration files and perform other small tasks. Atom is best for programmers who want a beautiful user interface, along with powerful extensions like in-built Git integration, and more!

    与VIM一样,Atom既作为GUI应用程序又作为命令行实用程序提供。 它不适用于仅使用文本编辑器来编辑配置文件并执行其他小任务的人。 Atom最适合想要美丽的用户界面以及强大的扩展功能(例如内置Git集成)的程序员!

    You can install ATOM with the following commands:

    您可以使用以下命令安装ATOM:

    
    #Add PPA repository 
    sudo add-apt-repository ppa:webupd8team/atom
    
    #Update system
    sudo apt update
    
    #Install ATOM
    sudo apt install atom
    

    3. Sublime Text –最流行的文本编辑器 (3. Sublime Text – The most popular text editor)

    Sublime Text
    Sublime Text
    崇高文字

    The phrase that ‘good things are often not free’ suits Sublime Text better than anything else. Sublime Text was developed to be considered a full-fledged IDE and is the only freemium editor in this list.

    “好的东西通常不是免费的”这一短语比其他任何东西都更适合Sublime Text。 Sublime Text被开发为功能完善的IDE,并且是此列表中唯一的免费增值编辑器。

    Developed by the Sublime HQ in 2008, this Python-powered shareware is described as a “sophisticated text editor for code, markup, and prose” by its creators. Sublime Text offers a range of features such as simultaneous editing, split-screen mode, Pythons based APIs, and command pallet along with having a builtin support for numerous markup and programming languages.

    由Sublime HQ在2008年开发,此Python驱动的共享软件被其创建者称为“用于代码,标记和散文的复杂文本编辑器”。 Sublime Text提供了一系列功能,例如同时编辑,分屏模式,基于Python的API和命令托盘,以及对多种标记和编程语言的内置支持。

    Sublime Text is popular for not being a freeware in the Linux community. It is a text editor that offers useful native functions like GoToAnything and Distraction-free mode. Like Atom, Sublime Text is more focused on users who wish to use their text editor primarily for programming and developing scripts on their system. You can install sublime-text with the following command

    Sublime Text因不是Linux社区中的免费软件而广受欢迎。 它是一个文本编辑器,提供有用的本机功能,例如GoToAnything和免干扰模式。 像Atom一样, Sublime Text更专注于希望使用其文本编辑器主要用于在系统上编程和开发脚本的用户。 您可以使用以下命令安装sublime-text

    
    #add repository GPG key
    wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
    
    #Add repository to apt sources
    echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
    
    #install sublime text
    sudo apt install sublime-text
    

    4. XED –最佳可扩展性文本编辑器 (4. XED – Best Text Editor for Extendability)

    Xed Editor
    Xed Editor
    Xed编辑器

    This editor comes pre-installed with a ton of functionalities and additions that make it a great replacement for Gedit and Pluma which has been used as the default editors in many distributions.

    该编辑器预装了很多功能和附加功能,使其非常适合Gedit和Pluma,后者已在许多发行版本中用作默认编辑器。

    Linux mint has adopted Xed as the default GUI text editor instead of Gedit and after using it for long enough, we know exactly why. Xed is for programmers who love their text editors to be very flexible.

    Linux mint已采用Xed代替Gedit作为默认的GUI文本编辑器,并且使用了足够长的时间之后,我们确切地知道了为什么。 Xed适用于喜欢其文本编辑器的程序员,它们非常灵活。

    Apart from that, it’s also an X-app. You can go ahead and install Xed on your system with the following commands:

    除此之外,它还是一个X应用程序。 您可以继续使用以下命令在系统上安装Xed:

    
    sudo add-apt-repository ppa:embrosyn/xapps
    sudo apt install xed
    

    5. Gamma文本编辑器–最佳轻量级GUI编辑器 (5. Gamma Text Editor – Best Lightweight GUI Editor)

    Gamma Text Editor
    Gamma Text Editor
    Gamma文字编辑器

    We used it, and we loved it. Every single element of the editor is customizable, just like it is for VIM. The difference is, Gamma is complete GUI editor.

    我们使用它,并且喜欢它。 编辑器的每个元素都是可自定义的,就像VIM一样。 区别在于,Gamma是完整的GUI编辑器。

    It’s very lightweight on resources and doesn’t hog memory like some of the more powerful GUI text editors do. Gamma Text editor allows you to enjoy a very powerful editor even on a low powered machine.

    它在资源上非常轻巧,不会像某些更强大的GUI文本编辑器那样占用内存。 Gamma文本编辑器使您即使在低功率机器上也可以享受功能非常强大的编辑器。

    For Python lovers, Gamma is built entirely in Python. The packages for this editor may not be available for your distribution. So this installation method will be common for all the distributions.

    对于Python爱好者,Gamma完全用Python构建。 该编辑器的软件包可能不适用于您的分发。 因此,此安装方法对于所有发行版都是通用的。

    
    git clone https://gitlab.com/hamadmarri/gamma-text-editor
    cd gamma-text-editor 
    chmod +x setup.sh
    ./setup.sh
    

    6. Gedit –最佳的简化和功能强大的编辑器 (6. Gedit – Best simplistic and powerful editor)

    Gedit Screen
    Gedit Screen
    Gedit屏幕

    When people are new to text editors in Linux they often look for something simple to understand, yet having a powerful functionality, which they can benefit from once they are familiar with the editor. This is the domain where Gedit appeals a large chunk of its audience.

    当人们不熟悉Linux中的文本编辑器时,他们通常会寻求简单易懂但功能强大的功能,一旦熟悉编辑器,他们便会从中受益。 这是Gedit吸引大量受众的领域。

    Developed under the GNU General Public License, it was initially released to the public in 2000. The Gedit text editor offers a wide range of features while having a simple to use GUI interface.

    它是根据GNU通用公共许可证开发的,最初于2000年向公众发布。Gedit文本编辑器提供了广泛的功能,同时具有易于使用的GUI界面。

    When you choose Gedit, you get support for UTF-8 characters, remote editing, syntax highlighting with customization, configurable font properties, file reverting, search and replace option, and clipboard support. 

    选择Gedit时,您将支持UTF-8字符,远程编辑,具有自定义功能的语法高亮显示,可配置的字体属性,文件还原,搜索和替换选项以及剪贴板支持。

    If you need a lightweight text editor with high plugin support and a wide range of powerful features, Gedit is the text editor for you. While it is a basic and easy to understand editor on the surface, its functionality makes Gedit a fairly competent editor.

    如果您需要具有高插件支持和广泛功能的轻量级文本编辑器,则Gedit是适合您的文本编辑器。 尽管它是表面上的基本且易于理解的编辑器,但其功能使Gedit成为了称职的编辑器。

    You can install GEdit with the following command:

    您可以使用以下命令安装GEdit:

    
    sudo apt install gedit
    

    7. Nano –命令行初学者的最佳编辑器 ( 7. Nano – Best Editor for the Command Line Beginner )

    Nano Text Editor 1
    Nano Text Editor
    纳米文字编辑器

    You have text editors that are designed for basic usage. You have text editors designed for advanced users. But what about a text editor that is designed for the user, not the usage? This is where Nano comes into the picture. Nano is a text editor that is known for its user-friendly command-line design.

    您有文本编辑器 设计用于基本用途。 您具有专为高级用户设计的文本编辑器。 但是为用户而不是用法设计的文本编辑器呢? 这是Nano出现的地方。 Nano是一种文本编辑器,以其用户友好的命令行设计而闻名。

    It is easy to learn and use for beginners, while fairly keeping up with the requirements of an advanced user. Developed under the GNU General Public License, Nano was first launched in 2000. It soon spread among the public due to its simplistic and easy to grasp interface.

    对于初学者来说,它很容易学习和使用,同时完全可以满足高级用户的要求。 Nano是在GNU通用公共许可证下开发的,于2000年首次发布。由于其简单易用的界面,它很快在公众中传播。

    Nano offers features such as automatic indentation, interactive find-and-replace function, soft text wrapping, and case-sensitive searching.

    Nano提供的功能包括自动缩进,交互式查找和替换功能,软文本换行以及区分大小写的搜索。

    Nano works only as a command-line utility. It is great for users who need a simple text editor while working with the command line. Nano is easy to use even though it’s a command-line editor. Unlike VIM, it allows you to work with it in the same way as you’d with a GUI text editor.

    Nano仅用作命令行实用程序。 对于在使用命令行时需要简单的文本编辑器的用户来说非常有用。 即使Nano是命令行编辑器,它也易于使用。 与VIM不同,它允许您以与使用GUI文本编辑器相同的方式来使用它。

    You can install Nano with the following command:

    您可以使用以下命令安装Nano:

    
    sudo apt install nano
    

    最后… (Finally…)

    With a large number of text editors available in the market for Linux users, it is often tough to choose the one for you. This was our pick of the best text editors available for you. Did you find your ideal text editor? Did we miss your preferred choice? Let us know in the comments below.

    市场上有大量针对Linux用户的文本编辑器,通常很难为您选择一个。 这是我们为您选择的最佳文本编辑器。 您找到理想的文本编辑器了吗? 我们错过了您的首选吗? 在下面的评论中让我们知道。

    翻译自: https://www.journaldev.com/41292/top-best-text-editors-linux

    linux 文本编辑器

    展开全文
  • 在C++中实现文本编辑

    2015-06-18 10:19:01
    功能:输入一页文字,程序可以统计出文字、数字、空格的个数。 静态存储一页文章,每行最多不超过80个字符,共N行。
  • 文本编辑器 - 同时编辑多行

    千次阅读 2020-06-16 14:02:54
    不同编辑环境下,同时编辑多行前选中(或选择)待编辑内容(或待编辑位置)的方式: 1. Visual Studio 2019 Alt+鼠标左键拖动 Shift+Alt+键盘方向键 Ctrl+Alt+鼠标左键单击 2. Notepad++ Alt+鼠标左键拖动 Shift+...
  • 使用vb.net语言编写的文本编辑界面窗体,可以实现对文字编辑修改,希望大家可以多学习交流下。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,108,576
精华内容 443,430
关键字:

文本编辑