如何使用

本插件适用于代码块(<pre><code>),不适用于行内代码。

在您的 <pre> 中添加 class command-line。对于服务器命令行,请使用 data-userdata-host 属性指定用户和主机名。生成的提示符为根用户显示 #,为所有其他用户显示 $。对于任何其他命令行(例如 Windows 提示符),您可以使用 data-prompt 属性指定整个提示符。

可选:命令输出(位置)

您可以通过 <pre> 元素上的 data-output 属性指定要作为输出显示的行(无提示符,无高亮),以下是简单的格式

示例

5
第 5 行
1-5
第 1 至 5 行
1,4
第 1 行和第 4 行
1-2, 5, 9-20
第 1 至 2 行、第 5 行、第 9 至 20 行

可选:命令输出(前缀)

要自动将某些行显示为输出,您可以在这些行的前面加上任何字符串,并使用 <pre> 元素上的 data-filter-output 属性指定前缀。例如,data-filter-output="(out)" 将把以 (out) 开头的行视为输出并删除前缀。

空行将呈现为空行,并带有一个提示符。如果您想要一个没有提示符的空行,那么可以使用只包含输出前缀的行,例如 (out)。请参见以下示例中的空白行。

默认情况下,输出行可由用户选择,因此,如果您选择代码块的全部内容,它将选择 shell 命令和任何输出行。如果您只想复制/粘贴命令而不复制/粘贴输出,这可能不是您想要的。如果您想使输出不可由用户选择,请将以下内容添加到您的 CSS

.command-line span.token.output {
	user-select: none;
}

可选:多行命令

您可以将插件配置为处理多行命令。有两种方法可以做到这一点;设置行续行字符串(如在 Bash 中);或者明确地用前缀标记续行行,适用于没有续行字符串/字符的语言,例如 SQL、Scala 等。

data-continuation-str
将该属性设置为行续行字符串/字符,例如对于 bash data-continuation-str="\"
data-filter-continuation
它的工作方式与 data-filter-output 类似。为所有连续行添加 data-filter-continuation 的值作为前缀,这些行将与 data-continuation-prompt 中设置的提示一起显示。例如,data-filter-continuation="(con)" 将把以 (con) 开头的行视为连续行并移除前缀。
data-continuation-prompt
设置此属性以定义命令行在第一行外继续时将显示的提示(无论是通过行继续还是命令终止),例如对于 MySQL data-continuation-prompt="->"。如果未设置此属性,则将使用 > 的默认设置。

示例

未输出的默认使用

<pre class="command-line">
cd ~/.vim

vim vimrc

未输出的 Root 用户

<pre class="command-line"
     data-user="root"
     data-host="localhost">
cd /usr/local/etc
cp php.ini php.ini.bak
vi php.ini

已输出的非 Root 用户

<pre class="command-line"
     data-user="chris"
     data-host="remotehost"
     data-output="2, 4-8">
pwd
/usr/home/chris/bin
ls -la
total 2
drwxr-xr-x   2 chris  chris     11 Jan 10 16:48 .
drwxr--r-x  45 chris  chris     92 Feb 14 11:10 ..
-rwxr-xr-x   1 chris  chris    444 Aug 25  2013 backup
-rwxr-xr-x   1 chris  chris    642 Jan 17 14:42 deploy

已输出的 Windows PowerShell

<pre class="command-line"
     data-prompt="PS C:\Users\Chris>"
     data-output="2-19">
dir


    Directory: C:\Users\Chris


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d-r--        10/14/2015   5:06 PM            Contacts
d-r--        12/12/2015   1:47 PM            Desktop
d-r--         11/4/2015   7:59 PM            Documents
d-r--        10/14/2015   5:06 PM            Downloads
d-r--        10/14/2015   5:06 PM            Favorites
d-r--        10/14/2015   5:06 PM            Links
d-r--        10/14/2015   5:06 PM            Music
d-r--        10/14/2015   5:06 PM            Pictures
d-r--        10/14/2015   5:06 PM            Saved Games
d-r--        10/14/2015   5:06 PM            Searches
d-r--        10/14/2015   5:06 PM            Videos

已输出的行继续(bash)

<pre class="command-line"
     data-filter-output="(out)"
     data-continuation-str="\" >
export MY_VAR=123
echo "hello"
(out)hello
echo one \
two \
three
(out)one two three
(out)
echo "goodbye"
(out)goodbye

已输出的行继续(PowerShell)

<pre class="command-line"
     data-prompt="ps c:\users\chris>"
     data-continuation-prompt=">>"
     data-filter-output="(out)"
     data-continuation-str=" `">
Write-Host `
'Hello' `
'from' `
'PowerShell!'
(out)Hello from PowerShell!
Write-Host 'Goodbye from PowerShell!'
(out)Goodbye from PowerShell!

使用前缀的行继续(MySQL/SQL)

<pre class="command-line"
     data-prompt="mysql>"
     data-continuation-prompt="->"
     data-filter-output="(out)"
     data-filter-continuation="(con)">
set @my_var = 'foo';
set @my_other_var = 'bar';
(out)
CREATE TABLE people (
(con)first_name VARCHAR(30) NOT NULL,
(con)last_name VARCHAR(30) NOT NULL
(con));
(out)Query OK, 0 rows affected (0.09 sec)
(out)
insert into people
(con)values ('John', 'Doe');
(out)Query OK, 1 row affected (0.02 sec)
(out)
select *
(con)from people
(con)order by last_name;
(out)+------------+-----------+
(out)| first_name | last_name |
(out)+------------+-----------+
(out)| John       | Doe       |
(out)+------------+-----------+
(out)1 row in set (0.00 sec)