精华内容
下载资源
问答
  • python解释器快捷键

    2019-09-24 20:38:05
    某些版本的 Python 解释器支持编辑当前的输入行和历史记录,类似于在 Korn shell 和 GNU Bash shell 中看到的功能。这是使用GNU Readline库实现的,它支持 Emacs 风格和 vi 风格的编辑。这个库有它自己的文档,在...

    13. 交互式输入的编辑和历史记录

    某些版本的 Python 解释器支持编辑当前的输入行和历史记录,类似于在 Korn shell 和 GNU Bash shell 中看到的功能。这是使用GNU Readline库实现的,它支持 Emacs 风格和 vi 风格的编辑。这个库有它自己的文档,在这里我不就重复了;然而,基本原理很容易解释。本章讲述的交互式编辑和历史记录功能在 Unix 版本和 Cygwin 版本中是可选的。

    13.1. 行编辑

    如果支持,无论解释器打印主提示符还是从属提示符,输入行一直都可以编辑。可以使用传统的Emacs控制字符编辑当前行。其中最重要的是:C-A (Control-A)将光标移动到行首,C-E移到行尾,C-B将光标向左移动一个位置,C-F向右移动一个位置。退格键删除光标左侧的字符,C-D删除光标右侧的字符。C-k删掉一行中光标右侧的所有字符,C-y将最后一次删除的字符串粘贴到光标位置。C-下划线将撤消最近一次的更改;它可以重复执行并产生累积效果。

    13.2. 历史记录

    历史记录的工作方式如下。所有的非空输入行都保存在历史记录缓冲区中,当给出一个新的提示符时,你位于缓冲区最底部新的一行。C-P向上(往回)移动历史记录缓冲区中的一行,C-N向下移动一行。历史记录缓冲区中的任何一行都可以编辑;提示符的前面用一个星号标记修改的行。Return键会将当前行传递给解释器。C-R开始逐渐向后搜索;C-S开始向前搜索。

     

     

    2.1 调用解释器

    在可用的机器上,Python解释器通常安装成/usr/local/bin/python请将/usr/local/bin加入您的Unix shell搜索路径,以使得可以通过在shell中键入命令

    python
    

    来启动它。由于解释器放置的目录是一个安装选项,其它地方也是可能的;请与您本地的Python专家或系统管理员联系。(例如,/usr/local/python是另外一个常见的位置。)

    在Windows机器上,Python的安装通常放在C:\Python27,当然你可以在运行安装程序时进行更改。你可以在一个DOS窗口的命令提示符下键入以下命令来把这个目录添加到路径中:

    set path=%path%;C:\python27

    主提示符下键入文件结束字符(Unix上是Control-D、Windows上是Control-Z)会导致解释器以0退出状态退出。如果无法正常工作,您可以通过键入以下命令退出解释器:quit()

    解释器的行编辑功能通常不是很复杂。在Unix上,不管是谁安装的,解释器可能已启用对GNU readline库的支持,该库添加了更详细的交互式编辑和历史记录功能。检查是否支持命令行编辑的最快的方式也许是对你的第一个Python提示符键入Control-P。如果它发出蜂鸣声,则有命令行编辑;请参阅附录交互式输入编辑和历史替代的有关快捷键的介绍。如果什么都没发生,或者显示^P,则命令行编辑不可用;你就只能够使用退格键删除当前行中的字符。

    解释器有些像Unix shell:当调用时使用连接到一个tty设备作为标准输入,它交互地读取并执行命令;当用文件名参数或文件作为标准输入调用,它将读取并执行该文件中的脚本。

    第二种启动解释器的方式是python -c command [arg] ...,它会执行command中的语句,类似于shell的-c选项。因为Python语句经常包含空格或其他shell特殊字符,通常建议把全部command放在单引号里。

    有些Python模块也是可执行的脚本。这些模块可以使用python -m module [arg] ...直接调用,这和在命令行输入完整的路径名执行module的源文件是一样的。

    有时使用一个脚本文件,能够在运行该脚本之后进入交互模式非常有用。这可以通过在脚本前面加上-i选项实现。

     

     

    转载于:https://www.cnblogs.com/hackerl/p/4782497.html

    展开全文
  • 相关命令以及快捷键

    2020-02-20 13:12:18
    shell:命令解释器:解释由用户输入的命令并且把它送到内核 文件管理 用户管理 权限管理 磁盘管理 软件管理 网络管理 安全管理 。。。 命令行和命令提示符: CentOS release 6.8 (Final) 显示当前Linux发行版本名称...

    shell环境:系统的用户界面,提供用户与内核的交互操作接口,
    shell:命令解释器:解释由用户输入的命令并且把它送到内核
    文件管理
    用户管理
    权限管理
    磁盘管理
    软件管理
    网络管理
    安全管理
    。。。
    命令行和命令提示符:
    CentOS release 6.8 (Final)
    显示当前Linux发行版本名称(CentOS)与版本号(6.8)
    Kernel 2.6.32-642.e16.x86_64 on an x86_64
    显示liux内核,并且显示运行在x86_64架构上
    nebulalinux03 login:root
    主机名登录 root用户登录
    在这里插入图片描述
    命令语法结构:

    [nebula@nebulalinux05 ~]$ ls -l /etc/
    在这里插入图片描述
    commond:
    发起一个命令:请求内核将二进制程序文件运行成为一个进程,
    程序—>进程
    静态---->动态 生命周期
    在这里插入图片描述
    获取命令帮助:
    在这里插入图片描述
    分类:
    内部命令:没有存储位置的命令,shell自带
    外部命令:linux系统中有存储位置的命令, 与之对应的二进制可执行文件。在这里插入图片描述
    shell如何解析命令:
    #: ls -lh /etc
    commond:ls
    option:-lh
    paramenter…:/etc

    在这里插入图片描述

    Linux文本编辑工具:
    vi编辑器
    vi/vim:
    在这里插入图片描述
    命令模式:
    光标移动:上下左右键
    翻页:Page Down 或者 Ctrl+F 向下翻一页
    Page UP 或者 Ctrl+B 向上翻一页
    行内跳转:
    ^或者数字0 Home 跳转至行首
    $或者 End 跳转至行尾
    行间跳转:
    1G,gg 跳转至文件首行
    G 跳转至文件末行
    #G 跳转至文件的第#行
    在这里插入图片描述
    bash shell的特性
    补全机制:
    命令补全 shell解析命令 PATH
    路径补全 文件系统
    tab
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 提到vim的快捷键,咱们不得不唠嗑一下vi. ...在命令模式下,从键盘上输入的任何字符都被当作编辑命令解释,并且不会在屏幕上显示。如果输入的字符是合法的vi命令,则vi就会完成相应的动作;否则vi会拉响警告。 2..

    提到vim的快捷键,咱们不得不唠嗑一下vi.

    恁要知道,vim是用vi发展而来的一种文本编辑器。而,vi有三种模式:

    1. 命令模式: 用于输入命令

    2. 插入模式: 用于插入文本

    3. 可视最后行模式: 用于可视化的特殊命令模式

     

    1.命令模式:

    命令模式是启动vi后,首先进入的工作模式,并可转为文本编辑模式和可视模式。在命令模式下,从键盘上输入的任何字符都被当作编辑命令来解释,并且不会在屏幕上显示。如果输入的字符是合法的vi命令,则vi就会完成相应的动作;否则vi会拉响警告。

     

    2.文本编辑模式:

    文本编辑模式用于字符编辑。在命令模式下输入i(插入命令)、a(附加命令)等命令后进入文本编辑模式,进入后,输入的任何字符都被vi当作文件内容显示在屏幕上。

    按Esc键可从文本编辑模式返回到命令模式。

     

    3.可视最后行模式:

    在命令模式下,按“:”键(需要使用shift键辅助)进入可视最后行模式,此时vi会在屏幕的底部显示“:”符号年作为最后行模式的提示符,等待用户输入相关命令(如:wq)。

    命令执行完毕后,vi自动回到命令模式或则退出vi。

     

    vi常用命令(命令行模式下使用)

    i

    从当前光标开始,进入编辑模式

    a

    光标移动到当前字符后,进入编辑模式

    s

    删除当前光标下的字符,进入编辑模模式

    h

    向前移动一个字符

    j

    向上移动一行

    k

    向下移动一行

    l

    向后移动一个字符

    x

    删除光标所在字符

    shift+g+g

    跳到文件的最末尾

    gg

    跳到文件的最开始

    dd

    删除光标所在行

    dw

    删除当前光标后的所有连续字符

    <n>dd

    2dd,表示从当前行开始算,往下删除2行

    yy

    复制光标所在行

    <n>yy

    2yy,表示从当前行开始算,往下复制2行

    p

    拷贝粘贴板内容到当前光标后的下一行

    r

    修改光标所在字符,r后街者要修正的字符

    R

    进入替换状态,新增资料会覆盖原来资料,直到按下[ESC]回到指令状态下为止

    s

    删除光标所在字符,并进入插入模式

    S

    删除光标所在行, 并进入插入模式

    v+<移动光标>+p

    从按下v开始移动光标,会高亮出选中的字符,按下p后复制选中的所有字符

    /abc + 回车

    在文本中搜索abc, 并使用n/N键进行向下/上的搜索

    shift+*

    在文本中所有光标所在的字符,并可使用n/N键进行向下/上的搜索

    :<n> + 回车

    :59 --- 跳入文本的第59行

    :vsp abc.c + 回车

    使用分屏打开第二个文件abc.c, 并可使用ctrl+6来进行两个窗口文件的切换

    :%s/abc/123/g + 回车

    把文本中所有abc都替换为123

    :w + 回车

    保存文本(当前用户必须对文本有写权限),不退出

    :q + 回车

    退出文本,如有修改则不能退出

    :q! + 回车

    强行退出文本,放弃任何修改

    :wq + 回车

    保存文本,退出

     

     

    展开全文
  • vim命令快捷键

    千次阅读 2014-04-12 10:02:41
    vi /vim介绍 可以将 vim 视作 vi 的进阶版本,... 可以说vim 是个“程序编辑”!甚至一些 Linux 基础配置文件内的语法,都能够用 vim 来检查! 简单的来说, vi 是老式的文书处理器,不过功能已经很齐全了,但...

    http://blog.csdn.net/pipisorry/article/details/23515091

    vi /vim介绍

    可以将 vim 视作 vi 的进阶版本,vim 可以用颜色或底线等方式来显示一些特殊的信息。 可以说vim 是个“程序编辑器”!甚至一些 Linux 基础配置文件内的语法,都能够用 vim 来检查! 简单的来说, vi 是老式的文书处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具,就连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个“程序开发工具”而不是文书处理软件~^_^。 因为 vim 里面加入了很多额外的功能,例如支持正则表达式的搜寻架构、多文件编辑、区块复制等等。

    目前大部分的 distributions 都以 vim 取代 vi 的功能了!如果你使用 vi 后,却看到画面的右下角有显示目前光标所在的行列号码,那么你的 vi 已经被 vim 所取代啰

     

    vim的这些优势主要体现在以下几个方面

    1、多级撤消
    我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。
    2、易用性
    vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。
    3、语法加亮
    vim可以用不同的颜色来加亮你的代码。
    4、可视化操作
    就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。
    5、对vi的完全兼容
    某些情况下,你可以把vim当成vi来使用。

    皮皮Blog

     

     

    vi/vim命令及按键说明

     

    进入vi的命令

     

    vi filename :打开或新建文件,并将光标置于第一行首 
    vi +n filename :打开文件,并将光标置于第n行首 
    vi + filename :打开文件,并将光标置于最后一行首 
    vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 
    vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename 
    vi filename....filename :打开多个文件,依次进行编辑 

     

    一般模式可用的按钮说明

    第一部份:一般指令模式可用的按钮说明,光标移动、复制贴上、搜寻取代等

     

    移动光标的方法
    h 或 向左方向键(←) 光标向左移动一个字符
    j 或 向下方向键(↓) 光标向下移动一个字符
    k 或 向上方向键(↑) 光标向上移动一个字符
    l 或 向右方向键(→) 光标向右移动一个字符
    如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。
    如果想要进行多次移动的话,例如向下移动 30 列,可以使用 "30j" 或 "30↓" 的组合按键,
     亦即加上想要进行的次数(数字)后,按下动作即可!
    [Ctrl] + [f] 屏幕“向下”移动一页,相当于 [Page Down]按键 (常用)
    [Ctrl] + [b] 屏幕“向上”移动一页,相当于 [Page Up] 按键 (常用)
    [Ctrl] + [d] 屏幕“向下”移动半页
    [Ctrl] + [u] 屏幕“向上”移动半页
    + 光标移动到非空白字符的下一列
    - 光标移动到非空白字符的上一列
    n<space> 那个 n 表示“数字”,例如 20 。按下数字后再按空白键,光标会向右移动这一列的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。
    0 或功能键[Home] 这是数字“ 0 ”:移动到这一行的最前面字符处 (常用)
    $ 或功能键[End] 移动到这一行的最后面字符处(常用)
    H 光标移动到这个屏幕的最上方那一列的第一个字符
    M 光标移动到这个屏幕的中央那一列的第一个字符
    L 光标移动到这个屏幕的最下方那一列的第一个字符
    G 移动到这个文件的最后一列(常用) ctrl+g显示当前行
    nG n 为数字。移动到这个文件的第 n 列。例如 20G 则会移动到这个文件的第 20 列(可配合 :set nu) 等价于 :n
    gg 移动到这个文件的第一列,相当于 1G 啊! (常用)
    n<Enter> n 为数字。光标向下移动 n 列(常用)
    搜寻与取代(vim中输入/word后可以按enter结束输入,再按大小写Nn进入上下搜索)
    /word 向光标之下寻找一个名称为 word 的字串。例如要在文件内搜寻 vbird 这个字串,就输入 /vbird 即可! (常用)
    ?word 向光标之上寻找一个字串名称为 word 的字串。
    n 这个 n 是英文按键。代表“<u>重复前一个搜寻的动作</u>”。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字串,则按下 n 后,
    会向下继续搜寻下一个名称为 vbird 的字串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字串!
    N 这个 N 是英文按键。与 n 刚好相反,为“反向”进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示“向上”搜寻 vbird 。
    使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键字!
    :n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 列之间寻找 word1 这个字串,并将该字串取代为 word2 !
    举例来说,在 100 到 200 列之间搜寻 vbird 并取代为 VBIRD 则:“:100,200s/vbird/VBIRD/g”。(常用)
    :1,s/word1/word2/g 第1行到当前行
    :s/word1/word2/g 仅当前行
    去掉g就是在当前行中只对第一个匹配替换
    :1,$s/word1/word2/g 从第一列到最后一列寻找 word1 字串,并将该字串取代为 word2 !(常用)等价于%s/word1/word2/g
    :1,$s/word1/word2/gc 从第一列到最后一列寻找 word1 字串,并将该字串取代为 word2 !且在取代前显示提示字符给使用者确认 (confirm) 是否需要取代!(常用)

    Note: 分割符可以使用:代替/,而如~等特殊字符要在前面加\转义。 %s:\~/.bashrc:$envfilename:g
    删除、复制与贴上
    x, X 在一列字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是倒退键) (常用)
    nx n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, “10x”。
    dd 删除光标所在的那一整列,其实是剪切命令,之后可以粘贴的(常用)   "*dd: 删除行并存入缓冲区*
    ndd n 为数字。删除光标所在的向下 n 列,例如 20dd 则是删除 20 列 (常用)
    d1G 删除光标所在到第一列的所有数据
    dG 删除光标所在到最后一列的所有数据
    d$ 删除光标所在处,到该列的最后一个字符
    d0 那个是数字的 0 ,删除光标所在处,到该列的最前面一个字符
    yy 复制光标所在的那一列(常用) 等价于Y
    nyy n 为数字。复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用)
    y1G 复制光标所在列到第一列的所有数据
    yG 复制光标所在列到最后一列的所有数据
    y0 复制光标所在的那个字符到该列行首的所有数据
    y$ 复制光标所在的那个字符到该列行尾的所有数据
    p, P p 为将已复制的数据在光标下一列贴上,P 则为贴在光标上一列! 如果是通过y$复制的,粘贴是在当前光标处,而不是下一行!
    举例来说,我目前光标在第 20 列,且已经复制了 10 列数据。则按下 p 后, 那 10 列数据会贴在原本的 20 列之后,亦即由 21 列开始贴。
    但如果是按下 P 呢? 那么原本的第 20 列会被推到变成 30 列。 (常用)
    "*p: 从缓冲区*粘贴; "+p  从剪切板+粘贴; 见后面解释
    J 将光标所在列与下一列的数据结合成同一列
    c 重复删除多个数据,例如向下删除 10 列,[ 10cj ]
    u 复原前一个动作。(常用)
    [Ctrl]+r 重做上一个动作。(常用)
    这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,你的编辑,嘿嘿!很快乐的啦!
    . 不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点“.”就好了! (常用)

    皮皮Blog

     

    vi/vim三种模式及作用

    • 一般指令模式 (command mode)

     

    以 vi 打开一个文件就直接进入一般指令模式了(这是默认的模式,也简称为一般模式)。在这个模式中, 你可以使用“上下左右”按键来移动光标,你可以使用“删除字符”或“删除整列”来处理文件内容, 也可以使用“复制、贴上”来处理你的文件数据。

    • 编辑模式 (insert mode)

    在一般指令模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下“i, I, o, O, a, A, r, R”等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现“ INSERT 或 REPLACE ”的字样,此时才可以进行编辑。而如果要回到一般指令模式时, 则必须要按下“Esc”这个按键即可退出编辑模式。

    • 命令行命令模式 (command-line mode)

    在一般模式当中,输入“ : / ? ”三个中的任何一个按钮,就可以将光标移动到最下面那一列。在这个模式当中, 可以提供你“搜寻数据”的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的!

    简单的说,我们可以将这三个模式想成下面的图示来表示:

     

    Note:vim 的三种模式只有一般模式可以与编辑、指令列模式切换,编辑模式不指令列模式间并不能切换

    第二部份:一般指令模式切换到编辑模式的可用的按钮说明

     

    进入插入或取代的编辑模式
    i, I 进入插入模式(Insert mode):i 为“从目前光标所在处插入”, I 为“在目前所在列的第一个非空白字符处开始插入”。 (常用)
    a, A 进入插入模式(Insert mode):a 为“从目前光标所在的下一个字符处开始插入”, A 为“从光标所在列的最后一个字符处开始插入”。(常用)
    o, O 进入插入模式(Insert mode):这是英文字母 o 的大小写。o 为“在目前光标所在的下一列处插入新的一列”;
    O 为在目前光标所在处的上一列插入新的一列!(常用)
    r, R 进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
    上面这些按键中,在 vi 画面的左下角处会出现“--INSERT--”或“--REPLACE--”的字样。 由名称就知道该动作了吧!!
    特别注意的是,我们上面也提过了,你想要在文件里面输入字符时, 一定要在左下角处看到 INSERT 或 REPLACE 才能输入喔!
    [Esc] 退出编辑模式,回到一般指令模式中(常用)

     

    第三部份:一般指令模式切换到命令行界面的可用按钮说明

     

    命令行界面的储存、离开等指令
    :w 将编辑的数据写入硬盘文件中(常用)
    :w! 若文件属性为“只读”时,强制写入该文件。不过,到底能不能写入, 还是跟你对该文件的文件权限有关啊!
    :q 离开 vi (常用)
    :q! 若曾修改过文件,又不想储存,使用 ! 为强制离开不储存盘案。
    注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有“强制”的意思~
    :wq 储存后离开,若为 :wq! 则为强制储存后离开 (常用)
    ZZ 这是大写的 Z 喔!若文件没有更动,则不储存离开,若文件已经被更动过,则储存后离开!
    :w [filename] 将编辑的数据储存成另一个文件(类似另存新文件)
    :r [filename] 在编辑的数据中,读入另一个文件的数据。亦即将 “filename” 这个文件内容加到光标所在列后面
    :n1,n2 w [filename] 将 n1 到 n2 的内容储存成 filename 这个文件。
    :! command 暂时离开 vi 到命令行界面下执行 command 的显示结果!例如 “:! ls /home”即可在 vi 当中察看 /home 下面以 ls 输出的文件信息!
    vim 环境的变更
    :set nu 显示行号,设置之后,会在每一列的字首显示该列的行号
    :set nonu 与 set nu 相反,为取消行号!

     

    vim中sudo保存无权限修改的文件

    使用 vim 对某个文件进行编辑,编辑完之后,按 ESC 之后回到普通模式,再按 :wq 准备保存退出时,发现没有权限对该文件进行修改,我们在使用 vim 命令时忘记在前面加 sudo 了。我就经常出现这种问题,之前的做法是只能不保存强退,再加上 sudo 重新编辑。

    可以在 vim 的普通模式下,按 :w !sudo tee % ,这样就可以 root 权限来保存文件了。

    其它快捷键

    :r filename 来读入某个文件的内容(整个文件内容)到vim当前打开的文件中

    Note:

    1. 在 vi 中,“数字”是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。举例来说,要删除 50 列,则是用 “50dd” 对吧! 数字加在动作之前~那我要向下移动 20 列呢?那就是“20j”或者是“20↓”即可。

    2. vim还有暂存档、救援回复与开启时的警告讯息功能

     

    vim 常用指令示意图

    vi/vim键盘图

     

     

     

     

    皮皮Blog

     

    VIM中常用的替换模式总结

    1,简单替换表达式
    替换命令可以在全文中用一个单词替换另一个单词::%s/four/4/g
    “%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可
    如果你有一个象“thirtyfour” 这样的单词,上面的命令会出错。这种情况下,这个单词会被替换成”thirty4″。要解决这个问题,用 “\<” 来指定匹配单词开头:
    :%s/\<four/4/g
    显然,这样在处理“fourty” 的时候还是会出错。用“\>” 来解决这个问题:
    :%s/\<four\>/4/g
    如果你在编码,你可能只想替换注释中的 “four”,而保留代码中的。由于这很难指定,可以在替换命令中加一个 “c” 标记,这样,Vim 会在每次替换前提示你:
    :%s/\<four\>/4/gc
    2,删除多余的空格
    要删除这些每行后面多余的空格,可以执行如下命令:
    :%s/\s\+$//
    命令前面指明范围是 “%”,所以这会作用于整个文件。”substitute” 命令的匹配模式是
    “\s\+$”。这表示行末($)前的一个或者多个(\+)空格(\s)。替换命令的 “to” 部分是空的:”//”。这样就会删除那些匹配的空白字符。
    3,匹配重复性模式
    星号项 “*” 规定在它前面的项可以重复任意次。因此:/a*
    匹配 “a”,”aa”,”aaa”,等等。但也匹配 “” (空字串),因为零次也包含在内。星号 “*” 仅仅应用于那个紧邻在它前面的项。因此 “ab*” 匹配 “a”,”ab”,”abb”,”abbb”,等等。如要多次重复整个字符串,那么该字符串必须被组成一个项。组成一项的方法就是在它前面加 “”,后面加“”。因此这个命令:/ab*
    匹配: “ab”,”abab”,”ababab”,等等。而且也匹配 “”。
    要避免匹配空字串,使用“\+”。这表示前面一项可以被匹配一次或多次。/ab\+
    匹配 “ab”,”abb”,”abbb”,等等。它不匹配 后面没有跟随 “b” 的 “a”。
    要匹配一个可选项,用“\=”。 例如:/folders\=匹配 “folder” 和 “folders”。
    4,指定重复次数
    要匹配某一项的特定次数重复,使用 “\{n,m}” 这样的形式。其中 “n” 和 “m” 都是数字。在它前面的那个项将被重复 “n” 到 “m” 次 (|inclusive| 包含 “n” 和 “m”)。例如:/ab\{3,5}
    匹配 “abbb”,”abbbb” 以及 “abbbbb”。
    当 “n” 省略时,被默认为零。当 “m” 省略时,被默认为无限大。当 “,m” 省略时,就表示重复正好 “n” 次。例如:
    模式 匹配次数 
    \{,4} 0,1,2,3 或 4
    \{3,} 3,4,5,等等
    \{0,1} 0 或 1,同 \=
    \{0,} 0 或 更多,同 *
    \{1,} 1 或 更多,同 \+
    \{3} 3
    5,多选一匹配
    在一个查找模式中,”或” 运算符是 “\|”。例如:/foo\|bar
    这个命令匹配了 “foo” 或 “bar”。更多的抉择可以连在后面:/one\|two\|three
    匹配 “one”,”two” 或 “three”。
    如要匹配其多次重复,那么整个抉择结构须置于 “”和“” 之间:/foo∥bar\+
    这个命令匹配 “foo”,”foobar”,”foofoo”,”barfoobar”,等等。
    再举个例子:
    /endif∥while∥for这个命令匹配 “endif”,”endwhile” 和 “endfor”。

    皮皮Blog

     

     

    vim 的额外功能

    区块选择(Visual Block)

    区块选择的按键意义

     
    v 字符选择,会将光标经过的地方反白选择!
    V 列选择,会将光标经过的列反白选择!
    [Ctrl]+v 区块选择,可以用长方形的方式选择数据。
    有时鼠标模式不对,可能需要使用ctrl+v再快速按shift(操作不好可能变成了ctrl+shift+v粘贴了),不知道有没其它解决方案
    y 将反白的地方复制起来
    d 将反白的地方删除掉
    p 将刚刚复制的区块,在光标所在处贴上!

     

    可视模式

    标记文本
    v
    进入可视模式,单字符模式
    V
    进入可视模式,行模式
    ctrl+v
    进入可视模式,列模式 ,类似于UE的列模式
    o
    跳转光标到选中块的另一个端点
    U
    将选中块中的内容转成大写
    O
    跳转光标到块的另一个端点
    aw
    选中一个字
    ab
    选中括号中的所有内容,包括括号本身
    aB
    选中{}括号中的所有内容
    ib
    选中括号中的内容,不含括号
    iB
    选中{}中的内容,不含{}
    对标记进行动作
    >
    块右移
    <
    块左移
    y
    复制块
    d
    删除块
    ~
    切换块中内容的大小写

    多文件编辑

    (最好使用多标签tab,这样可以在不同窗口间通过快捷键切换)

    多文件编辑的按键

     
    :n 编辑下一个文件
    :N 编辑上一个文件
    :files 列出目前这个 vim 的打开的所有文件

    q ”来离开 vim 的多文件编辑。

     

    多窗口功能

    :sp {filename}    filename 可有可无, 如果想要在新窗口启动另一个文件,就加入文件名

    仅输入 :sp 时, 出现的则是同一个文件在两个窗口间!

    多窗口情况下的按键功能

     

    :sp [filename] 打开一个新窗口,如果有加 filename, 表示在新窗口打开一个新文件,否则表示两个窗口为同一个文件内容(同步显示)。
    [ctrl]+w+ j [ctrl]+w+↓ 按键的按法是:先按下 [ctrl] 不放, 再按下 w 后放开所有的按键,然后再按下 j (或向下方向键),则光标可移动到下方的窗口。
    [ctrl]+w+ k [ctrl]+w+↑ 同上,不过光标移动到上面的窗口。
    [ctrl]+w+ q 其实就是 :q 结束离开啦! 举例来说,如果我想要结束下方的窗口,那么利用 [ctrl]+w+↓ 移动到下方窗口后,按下 :q 即可离开, 也可以按下 [ctrl]+w+q 啊!

    水平分割窗口 ctrl+w s
    垂直分割窗口 ctrl+w v

     

    切换窗口 ctrl+w w
    退出当前窗口(由于同时有多个文件,此命令不会影响其他窗口) ctrl+w

    多标签编辑

    用法
    :tabnew [++opt选项] [+cmd] 文件            建立对指定文件新的tab(文件存在或不存在都可以)

    vim -p * 就是编辑当前目录的所有文件,这样就可以使用gt在不同文件间切换了。使用vim *不能使用gt切换(不知道为啥)。

    :tabc       关闭当前的tab
    :tabo       关闭所有其他的tab
    :tabs       查看所有打开的tab
    :tabp      前一个
    :tabn      后一个
    标准模式下的tab间切换
    gt , gT 可以直接在tab之间切换
    其它命令:help table

    Note: 加了插件NERDTree后还可以使用F2打开文件目录树,双击打开新的tab。

    vim的复制和粘贴及与系统剪切板的交互

    要与系统交互要安装sudo apt-get install -y vim-gnome。

    显示所有寄存器内容::reg
    其中注意两个特殊的寄存器:"* 和 "+。这两个寄存器是和系统相通的,前者关联系统选择缓冲区,后者关联系统剪切板。通过它们可以和其他程序进行数据交换。
    备注:若寄存器列表里无"* 或 "+ 寄存器,则可能是由于没有安装vim的图形界面所致。Debian/Ubuntu下可以通过安装vim-gnome解决。

    不同于Windows,Linux系统里存在两个剪切板:一个叫做选择缓冲区(X11 selection buffer),另一个才是剪切板(clipboard)。选择缓冲区是实时的,当使用鼠标或键盘选择内容时,内容已经存在于选择缓冲区了,这或许就是选择缓冲区的由来吧。

     

    鼠标的不同模式下的复制和粘贴

     

    :set mouse=a时,vim中选择的同时不会选中行号,点击中键会复制到缓冲区(而不是剪切板),这时再点击鼠标中键可以粘贴在同一个vim中。

    但是如果安装了vim-gnome,这时就存在"*寄存器,选择文字就可以复制到系统其它地方了!而且复制是不带行号的,彻底解决了vim中选择带行号的复制问题(lz推荐)

    :set mouse=v时,vim中选择的同时会选中行号,而且要使用ct+sh+c来选择文字。

    vim有一个可视模式(Visual Mode),在此模式下可以选择区域。可以在普通模式下键入v进入可视模式,也可以个性化一点,键入V进入行可视模式,或者键入Ctrl+v进入列可视模式。这时移动光标就可以选择内容了。注意这时被选内容已经实时保存于选择缓冲区了,当然你也可以键入”+y将此内容也保存到剪切板里,或者”ay将内容保存到标签为a的寄存器中。

    vim不同文件间的交互

    vim多tab打开文件后就可以使用vim在不同文件间复制粘贴了,是不是很皮皮!

    Note: 还有一种vim复制粘贴方法,不过必须是同一个vim打开的。

    复制内容到选择缓冲区。

    带行号时,使用鼠标选择内容区域。

    不要行号,使用 “*yny 复制n行或可视模式下选择。

    将选择缓冲区中内容粘贴到vim文件:普通模式下按 “*p

    与系统剪切板的交互

    很多时候使用 Vim 编辑文本,总需要复制里面的东西出来,粘贴到其他地方,比如说网页,聊天窗口等等,而有些时候有需要从网页等地方复制文字过来粘贴到 Vim 正在编辑的文件里。这个两个过程应该怎么完成呢?
    一般的解决方法
    复制文本
    当我们要将 Vim 里面的文本复制出来,往往会用鼠标选中,然后到需要粘贴的地方小点下鼠标中键或 Shift + Insert,完成复制粘贴的过程
    但 Vim 设置显示行号,多窗口使用,或者使用 Tmux 这类有利于提高效率的工具的时候,这样选择未必行的通。
    这时候,需要鼠标可以选中 Vim 单个窗口且不包含行号的文本,可以使用 :set mouse=a,让 Vim 支持鼠标选择,大概事情就可以解决,这样的感觉也挺爽的,赶紧把 set mouse=a 加入你的 .vimrc 文件:)

    粘贴文本

    直接粘贴的方式会导致代码丢失和缩进错乱等情况。

    vim进入paste模式,命令:set paste,进入paste模式之后,再按i进入插入模式,进行复制、粘贴就很正常了。
    输入:set nopaste 解除paste模式。


    当我们在其他地方选择文本后,想粘贴到 Vim,一般都会切换到插入模式点鼠标中键或 Shift + Insert,完成复制粘贴的过程。
    但有些时候,比如说复制在网页一些代码,粘贴时有时会出现不对齐,前面未加注释代码却被加上注释,这样一些恼人的问题。
    这时候,可以通过 :set paste 将 Vim 设置为粘贴模式后再进行粘贴,既然是两种模式,肯定是有区别的,:set nopaste 是返回正常模式。这么干毕竟不方便,可以通过 .vimrc 添加映射来解决这个问题,更是有 set pastetoggle= 这个方便的选项,若在 .vimrc 文件里添加 set pastetoggle=<F11>,则 F11 为粘贴模式的切换键。
    比较 Vim 的方法
    上述方法,大致可以解决问题,但很多同学并不喜欢用这种方式来复制粘贴,或是喜欢键盘操作的爽快,或是习惯了 Windows 下那套 Ctrl + c, Ctrl + v,通过系统剪切板来实现。还有,使用 VirtualBox 的时候,若设置剪切板互通,也是用到系统剪切板。
    Vim 不是通过 Ctrl + c, Ctrl + x, Ctrl + v 来实现复制、剪切、粘贴的,而是通过 y, d, p 这些更为方便的键来实现各种复杂的文本操作。
    对于和系统剪贴板的交互,又应该怎么用呢?遇到问题一般第一个寻找的是帮助文档,剪切板即是 Clipboard。
    通过 :h clipboard 查看帮助,    When using this register under X11, also see x11-selection.    若在 X11 中使用该寄存器,另见 x11-selection。
    顺着思路 :h x11-selection,里面详细地介绍了 Vim 提供的使用 X11 主选择缓冲区和剪切板的方法,它们是通过 "* 和 "+ 两个寄存器来实现。
    大致可以明白,在 Windows 上只能通过 Clipboard,而可爱的 X11 却还给了我们 Primary,所以有了选中即复制,鼠标中间即粘贴这么神奇的粘贴操作。
    在 Vim 里,正常模式下,复制文本到 Clipboard,基本只是在前面加上 "+,其他一样,例如
    复制当前行
    "+yy 或 "+Y
    复制当前行及向下二行
    "+y2j
    选择后复制
    Vjj"+y
    复制到 Primary 和复制到 Clipboard 差不多,这里就不再详述,而粘贴则是加 p,自然还有剪切 d。

    [Vim 与系统剪切板交互 ]

    [Vim 复制粘贴探秘*]

    VIM 手册中关于mouse选项的说明

    'mouse'
    字符串 (缺省为 ”“,GUI、MS-DOS 和 Win32 为 “a”) 全局 {Vi 无此功能}
    允许使用鼠标。只可用于特定终端 (xterm、MS-DOS、Win32 |win32-mouse|、 QNX pterm 和带 gpm 的 Linux 控制台)。关于 GUI 里如何使用鼠标,见 |gui-mouse|。
    鼠标可以为不同模式分别打开:
    n 普通模式
    v 可视模式
    i 插入模式
    c 命令行模式
    h 编辑帮助文件时,所有前面的模式
    a 所有前面的模式
    r |hit-enter| 和 |more-prompt| 提示时
    A 可视模式的自动选择
    通常你会这样为所有四个模式打开鼠标:
    :set mouse=a
    如果鼠标没有打开,GUI 仍然使用鼠标进行无模式的选择。此行为不会移动文本光标。见 |mouse-using|。另见 |'clipboard'|。
    注意: 在终端里打开鼠标时,如果能连接到 X 服务器,复制/粘贴会使用 * 寄存器。按住 Shift 键就仍然可以使用 xterm 对鼠标按钮的处理。

     

    vim 的挑字补全功能

    vim 环境设置与记录: ~/.vimrc, ~/.viminfo

    [vim自定义设置-配置文件 ]

    其他 vim 使用注意事项 

    中文编码问题 

    DOS 不 Linux 癿断行字符: dos2unix, unix2dos 

    语系编码转换: iconv

    皮皮Blog

     

    其它

    选项设置 
    all:列出所有选项设置情况 
    term:设置终端类型 
    ignorance:在搜索中忽略大小写 
    list:显示制表位(Ctrl+I)和行尾标志($) 
    number:显示行号 
    report:显示由面向行的命令修改过的数目 
    terse:显示简短的警告信息 
    warn:在转到别的文件时若没保存当前文件则显示NO write信息 
    nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符 
    nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始 
    mesg:允许vi显示其他用户用write写到自己终端上的信息 

    寄存器操作 
    "?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字 
    "?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字 
    "?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字 
    "?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字 
    ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

    宏命令(Macros)
    高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的:
    :qx
    开始记录宏,并将结果存入寄存器x
    q 退出记录模式
    @x 播放记录在x寄存器中的宏命令
    稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,表示要重复多少次,比如@x20
    可以重复20次。这个在文本的批处理中是非常有用的。
    同时编辑多个文件
    在vim众多的插件中,有一个叫minibuffer的插件,就是下面所说的标签页功能了,可以支持同时编辑多个文件。
    标签命令
    :tabe fn
    在一个新的标签页中编辑文件fn
    gt 切换到下一个标签页
    gT 切换到上一个标签页
    :tabr 切换到第一个标签页
    :tabl 切换到最后一个标签页
    :tabm [N] 把当前tab移动到第N个tab之后
    跟eclipse, ue等的标签页是一个意思!
    其他
    vim在保存之前不会对文件做实际的修改,只是加载到缓冲区中,对文件的编辑其实是对缓冲区的编辑,直到:w时才会存入物理文件。 
    :e file
    把file加载到新的缓冲区中
    :bn
    跳转到下一个缓冲区
    :bd
    删除缓冲区(关闭文件)
    :sp fn
    分割窗口,并将fn加载到新的窗口中
    ”Ctrl + }“ 可以跳转到函数或变量的定义处,“Ctrl + o”可以返回上一个跳转页面。
    书签
     ma
    把当前位置存成标签a
    `a
    跳转到标签a处

     

    文件处理相关命令

     

    :set fileformat 设置文件格式
    :set endofline 设置文件结束符
    :set noendofline 取消文件结束符
    :set list 进入List Mode
    :set nolist 退出List Mode
    :%s/n//g 删除换行符
    :set textwidth 设置行宽
    :set textwidth 设置行边距
    :join 合并多行
    J 合并两行

    此外,关于ASCII字符,Linux下面有个简要的介绍:man ascii 

    ^M 是ascii中的'r'回车符,是16进制的0x0D,8进制的015,十进制的13;

    对于换行这个动作,unix下一般只有一个0x0A表示换行
    windows下一般都是0x0D和0x0A两个字符。
    ^L 是ascii 0x0C 'f', 换页控制符 。

    设置文件编码

    :set encoding=utf-8
    :set fileencodings=ucs-bom,utf-8,cp936
    :set fileencoding=gb2312
    :set termencoding=utf-8

    如何消除vi中的^M

    我刚开始去用sed命令: 

    
     
    1. sed 's/^M//g' file_old > file_new

    执行后查看不成功,输出的文件,用vi打开,还是带^M。
    后来到网上搜到了可以用的办法,用tr命令:

    
     
    1. tr -d "15" < myfile.txt > myfile_new.txt

    可以把符号^M(即"15")去掉,并另存为新文件myfile_new.txt 。

    vim显示空格、tab字符及多行注释 

    显示 TAB 键 

    文件中有 TAB 键的时候,你是看不见的。要把它显示出来:

    
     
    1. :set list TAB

    显示为 ^I,$显示在每行的结尾,表示换行,Vim 可以用高亮显示空格和TAB。 

    Vim多行缩进技巧 

     

    关键字: vim indent
    按v进入visual状态,选择多行,用>或<缩进或缩出
    通常根据语言特征使用自动缩进排版:

     

    在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format。

    使用gg=G可对整篇代码进行排版。 

    vim 多行注释

    
     
    1. :20,30 s/^/#/g 第20到30行用 # 注释掉。
    2. :20,30 s/^#//g 取消注释
    3. :4,10 s/^[^I ]+// 去掉行首的空白字符 用 . 表示当前行。
    4. :.,30 s/^/#/g 可以看到 vim 命令针对当前行,在前面加个范围就可以针对多行。
    5. :co 12 把当前行 copy 到行 12 的地方。

    [vi查看空格、制表符等特殊符号]

    皮皮Blog

    from:http://blog.csdn.net/pipisorry/article/details/23515091

    ref: Vim自动补全神器:YouCompleteMe

    ubuntu Vim用户操作指南

    个人使用VIM的一些总结

    vim学习网站[vim-adventureopenvim]

     

    展开全文
  • linux下查看当前python解释器的路径 首先终端输入Python。进入Python执行界面; 再输入以下两行代码即可: import sys sys.executable 二. Python虚拟环境virtualenvwrapper 鉴于virtualenv不便于对虚拟环境...
  • windows 命令快捷键

    2019-08-07 15:23:56
    可以在CMD下输入 也可以win+R。 1、msinfo32 2、systeminfo 3、cls 清屏 4、exit 退出cmd 5、 ...快捷键 win+X win+E win+D win+R win+T win+L win+tab Alt+tab Ctrl+tab ...
  • VIM 命令快捷键整理

    千次阅读 2021-06-01 22:21:35
    在vim官网找到的一些命令的合集,自己整理了一下,然后补充了一些例子和说明,喜欢VIM编辑的童鞋们请收藏。 |h| N h 左 (亦: CTRL-H、 或 键) 也可以移动n列,例如:12h 以这个例子说明一下 |h| 代表操作符说明 N ...
  • shell 命令快捷键

    2018-09-02 09:21:51
    作为嵌入式工程师,linux shell 命令是基础。所以让我们一起把基础打牢!嘻嘻。开始。 不知道大家喜欢B站不?虽然不是动漫迷,但是B站有着大量的学习视频,没有广告,不收费,嘻嘻。热衷于逛B站,总能发现自己...
  • OD常用命令&快捷键

    2019-04-28 15:03:31
    (解释:ultraedit打开编辑exe文件时你看到90,等同于汇编语句nop) call 调用子程序 je 或jz 若相等则跳(机器码74 或0F84) jne或jnz 若不相等则跳(机器码75或0F85) jmp 无条件跳(机器码EB) jb 若小于则跳 ja 若大于则跳...
  • pip install jupyter (前提是你已经安装好Python,并将python添加到环境解释器中) 安装完成之后,因为python已经添加至环境变量中,所以直接使用 jupyter notebook即可启动,如果你想要打开ipynb结尾的文件,直接在...
  • 命令解析---解析输入命令并执行操作 命令或目录补齐快捷键:TAB键 遍历史 输入:  小键盘:上 或 CTRL+P 小键盘:下 或 CTRL+N 光标移动: 小键盘:左 或 CTRL+B 小键盘:右 或 ...
  • Bash解析常用快捷键

    2021-02-16 22:10:23
    Bash解析常用快捷键 5.1 Tab键 补齐命令 补齐路径 显示当前目录下的所有目录 5.2 清屏 clear作用为清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + L ( “L” 为字母 )。 5.3 中断进程 ctlr+c...
  • vi 常用命令 快捷键

    千次阅读 2012-03-27 16:09:14
    [说明]: vi 是一个基于行编辑 ex 上的全屏幕编辑,可以在vi 中使用 ex,ed的全部命令,vi选项中 -wn 指将编辑窗口大小置为n行,-R 为将编辑的文件置为只读模式, vi 工作模式分为命令模式和输入模式,一般情况下...
  • atlab命令 一、常用对象操作:除了一般windows窗口的常用功能键外。 二、函数及运算 三、数组和矩阵 四、数值计算 附录1 管理用命令 附录2 运算符号与特殊字符附录 附录3 语言结构与调试 附录4 基本矩阵与矩阵...
  • Linux的命令 1、创建一个目录/abcd 提示: windows下的路径样式为c: \abcd\ test,而linux下的路径样式为 /abcd/test 因此/dzqc就可以看做是c:\abcd,不同的是 windows系统下还有D,E等盘, linux下就只有/ 为所有...
  • linux常用快捷键 tab 至少两次 能够快速到找想使用的命令 esc+. 调取上一个命令最后一个参数或者对象信息 ctrl+a 光标回到命令行首 ctrl+e 光标回到命令行尾 ctrl+b 光标向左移一个字符(相当与左键) ...
  • bash常用快捷键命令

    2014-08-27 01:42:00
    在使用Linux的时候,最常见的终端解释器就是bash了。bash下有很多技巧,我知道这么几个: 0.关于按键模式bash默认的按键模式是emacs风格的。你也可以通过set -i vi设定为vi风格。我用默认的emacs风格的,后面的...
  • Linux常用快捷键和基本命令整理,先上思维导图: 命令行提示符 如下为基本命令行提示符的样子,其中root为用户名,代表超级用户,oldbodyedu代表主机名,~代表当前目录,即家目录,#是超级用户提示符,如果是...
  • 1、命令提示符 [root@mysqlserver01 opt]# [root@mysqlserver01 ~]# root 当前用户名 @ 固定的(格式) mysqlserver01 主机名 opt 当前所在目录 ~ 用户家目录 # 表示当前用户是管理员 $ 表示当前用户是非...
  • windows下的快捷键及各种dos命令四、copy [/y][/-y][/v][ /B] copy /y 不加提示,对所有文件加以覆盖 /-y 加以提示,对所有文件 (yes或no提问 ) /v 拷贝以后加以校验 /B 按二进制进行显示
  • Linux的快捷键和主要命令

    千次阅读 2009-10-10 13:13:00
    Linux的快捷键和主要命令 作者:幻影快递Linux小组 翻译 2004-10-05 22:03:01 来自:Linux新手管理员指南(中文版) 5.1 Linux基本的键盘输入快捷键和一些常用命令 5.2 帮助命令 5.3 系统信息 5.4 基本操作 ...
  • bash解释器的交互式环境特性 1、命令和文件名自动补全(Tab键,只能补全命令和文件) 2、快捷键: !+$:取上一条命令的最后一个参数 alt+.:取上一条命令的最后一个参数 Ctrl+c:终止运行 +l:清屏 = clear +d:...
  • 更多文章请戳VSCode...命令 我们在前面HelloWord章节中已经提到了命令写法,这里再重温一下。 context.subscriptions.push(vscode.commands.registerCommand('extension.sayHello', () => { vscode.window.sh...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,022
精华内容 9,208
关键字:

命令解释器快捷键