2021年1月

这一标题可能看起来很粗略且吸睛。请允许我解释一下我在本教程中将要阐释的内容。假设你想下载一个压缩文件,将其解压缩,并从命令行中将文件从一个位置移动到另一个位置。根据上面的场景,我们可能需要至少三个 Linux 命令,一个用于下载文件,一个用于提取下载的文件,一个用于移动文件。如果你是中高级 Linux 用户,你可以通过一行命令或脚本在几秒钟/分钟内轻松完成这一任务。但是,如果你是一个不懂得太多 Linux 命令的菜鸟你可能就需要一些帮助了。

当然,谷歌的快速搜索可能会找到很多结果。或者,你可以使用 手册页。但是有些手册页实在很长,很全面,但缺少有用的示例。当你在特定的标志/选项上寻找特定的信息时,你可能需要向下检索相当长的时间。值得庆幸的是,有一些 好的手册页替代品,它们主要关注于实用的命令。一个很好的选择是 TLDR 手册。使用 TLDR 手册,我们可以通过实际示例快速轻松地学习一个 Linux 命令。要使用 TLDR 手册,我们需要 TLDR 客户端。有很多客户。今天我们就来了解一个这样的客户端,名为 “Tldr++”

Tldr++ 是一个快速和交互式的 Tldr 客户端,用 Go 编程语言编写。与其他 Tldr 客户端不同,它是完全交互式的。这意味着,你可以选择一个命令,读取所有示例,并立即运行任何命令,而不必在终端中重新键入或复制/粘贴每个命令。还是不明白?没有问题。请继续阅读,以便动态学习和实践 Linux 命令。

安装 Tldr++

安装 Tldr++ 非常简单。从 发布页面 下载 Tldr++ 最新版本。解压它并将 Tldr++ 二进制文件移动到你的 $PATH 中。

$ wget https://github.com/isacikgoz/tldr/releases/download/v0.5.0/tldr_0.5.0_linux_amd64.tar.gz
$ tar xzf tldr_0.5.0_linux_amd64.tar.gz
$ sudo mv tldr /usr/local/bin
$ sudo chmod +x /usr/local/bin/tldr

现在,运行 tldr 二进制代码将 TLDR 手册部署到本地系统中。

$ tldr

示例输出:

Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Compressing objects: 100% (6/6), done.
Total 18157 (delta 0), reused 3 (delta 0), pack-reused 18151
Successfully cloned into: /home/sk/.local/share/tldr

Tldr++ 可以在 AUR 中使用。如果你使用 Arch Linux 上,你可以使用任何 AUR 助手来安装它,例如 YaY。确保你已经从系统中删除了任何现有的 TLDR 客户端,并运行以下命令安装 Tldr++。

$ yay -S tldr++

或者,你也可以像下面描述的那样从源代码进行编译。因为 Tldr++ 是用 Go 语言编写的,所以请确保你 Linux 系统中已经安装了 Go 语言。如果还没有安装,请参考下面的指南。

在安装好 Go 语言之后, 运行以下的命令来安装 Tldr++。

$ go get -u github.com/isacikgoz/tldr

该命令在当前工作目录中下载 tldr 代码库中的内容并存储到 go 文件夹中。

现在,运行 tldr 二进制代码将 TLDR 手册部署到本地系统中。

$ go/bin/tldr

示例输出:

最后,将 tldr 二进制文件复制到你的路径中。

$ sudo mv tldr /usr/local/bin

现在是时候看一些例子了。

Tldr++ 用法

输入不带任何选项的 tldr 命令,以字母顺序显示所有命令示例。

使用 向上/向下箭头 来浏览命令,键入任何字母来搜索或键入命令名称来查看相应命令的示例。 ? 以浏览更多消息,按 Ctrl+c 返回/退出。

要显示特定命令的示例命令,例如 apt,可以这样做:

$ tldr apt

从列表中选择任意示例命令并按回车键。在选定的命令前会看到一个 * 符号。例如,我选择第一个命令即 sudo apt update。现在,它会问你是否继续。如果命令正确,只需键入 y 继续,并输入 sudo 密码运行所选命令。

看到了吗?你不需要在终端中复制/粘贴或键入实际的命令。只需从列表中选择它,并极速运行!

Tldr 手册中有数百个 Linux 命令示例。你可以每天选择一个或两个命令,并彻底学习它们。每天坚持这样的练习,尽可能多的掌握。

使用 Tldr++ 动态学习和实践 Linux 命令

现在回到我在第一段中提到的场景。你需要下载一个文件,将其解压缩并将其移动到不同的位置,并使其可执行。让我们看看如何使用 Tldr++ 客户端进行交互。

第一步 – 从网上下载文件

要使用命令行下载文件,我们主要使用 curlwget 命令。让我使用 wget 下载文件。要打开 wget 命令的 TLDR 页面,只需执行以下命令:

$ tldr wget

下面是 wget 命令的示例。

你可以使用 向上/向下箭头 来浏览命令列表。一旦你选择了你所选择的命令,按回车键。这里我选择了第一个命令。

现在,输入路径来下载文件。

然后将要求你确认该命令是否正确。如果命令正确,只需键入 yesy 就可以开始下载文件。

我们已经下载了文件。让我们继续解压这个文件。

第二步 – 解压已下载的文件

我们下载了 tar.gz 文件。所以我将打开 TLDR 手册的 tar 页面。

$ tldr tar

你将看到示例命令列表。浏览这些示例,找出哪个命令适合提取 tar.gz(gzip 格式)文件,按回车键。在我们的例子中,它是第三个命令。

现在,系统将提示你输入 tar.gz 文件的路径。只需输入路径并按回车键。Tldr++ 支持智能文件提示。这意味着它会在你键入时自动补全文件名。只需按 TAB 键自动完成。

如果将文件下载到其他位置,只需键入完整路径,例如 /home/sk/Downloads/tldr_0.5.0_linux_amd64.tar.gz

输入要解压的文件的路径后,按回车键,然后输入 y 进行确认。

第三步 – 将文件从一个目录移动到另一个目录

我们解压了文件。现在我们需要将文件移动到另一个位置。为了将文件从一个位置移动到另一个位置,我们使用 mv 命令。所以,让我们打开 TLDR 手册的 mv 命令。

$ tldr mv

选择正确的命令将文件从一个位置移动到另一个位置。在我们的例子中,第一个命令可以工作,所以让我们选中它。

输入要移动的文件路径,并输入目标路径并按回车键。

附注: 输入 y!yes! 来以 sudo 权限运行命令。

正如你在上面的截图中看到的,我将名为 `tldr的文件移动到/usr/local/bin/

要了解更多细节,请参考项目最后给出的 GitHub 页面。

总结

别误会,毫无疑问 手册页 是伟大的!但是,正如我已经说过的,许多手册页都很全面,缺少有用的示例。我不可能记住带有复杂标志的冗长的所有命令。有时,我花了很多时间在手册页上,却还是一窍不通。Tldr 手册帮助我在几分钟内找到了我需要的东西。而且,我们偶尔会使用一些命令,然后就会完全忘记它们。另一方面,Tldr 手册实际上在使用那些使用率很低的命令时很有帮助。Tldr++ 客户端通过智能的用户交互使这个任务变得更容易。试试吧,在下面的评论区告诉我们你对这个工具的看法。

(LCTT 译注:我们也开发了一个 TLDR 客户端,是基于微信小程序的,大家在微信中搜索“Linux”小程序即可找到。虽然微信小程序版的 TLDR 客户端不能像这个客户端一样实际运行 Linux,但是它是中文的,而且中文翻译是由使用者来贡献和修正的。顺便说一句,全部一千多个命令已经翻译完毕,感谢我们的贡献者们! )

以上,更多的好的分享将会陆续推出,请继续保持关注!

祝好!


via: https://www.ostechnix.com/search-study-and-practice-linux-commands-on-the-fly/

作者:SK 选题:lujun9972 译者:qfzy1233 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

快速解释如何在 Python 中调整图像大小,同时保持相同的长宽比。

 title=

我喜欢 Python,而且我已经学了一段时间了。前段时间,我写了一个 Python 脚本,在这个脚本中,我需要调整一堆图片的大小,同时保持长宽比(比例)不变。于是我四处寻找,发现了 Pillow,这是一个 Python 图像库,也是一个叫做 PIL 的旧库的“友好复刻”。

要安装 Pillow,请使用 Python 的 pip 模块:

$ python3 -m pip install Pillow

按宽度缩放

这是一个使用 Pillow 模块来调整图片大小的基本脚本:

from PIL import Image

basewidth = 300
img = Image.open('fullsized_image.jpg')
wpercent = (basewidth / float(img.size[0]))
hsize = int((float(img.size[1]) * float(wpercent)))
img = img.resize((basewidth, hsize), Image.ANTIALIAS)
img.save('resized_image.jpg')

这几行 Python 代码使用 Pillow 将一张图片 (fullsized_image.jpg) 调整为 300 像素的宽度,宽度在变量 basewidth 中设置,高度则与新的宽度成比例。比例高度的计算方法是:确定 300 像素占原宽度 (img.size[0]) 的百分比,然后将原高度(img.size[1]) 乘以该百分比。所得的高度值保存在变量 hsize 中。

如果你需要不同的图片宽度,你可以将 basewidth 改为任何其他数字。另外,请注意,因为我想保留全尺寸的图片 (fullsized_image.jpg),因此我将调整后的图片以一个不同的名称 resized_image.jpg 保存。当然,你不必这么做。如果你想,你可以使用相同的文件名将调整后的图片覆盖全尺寸的图片。

按高度缩放

如果高度是固定的,而宽度是按比例变化的,那也基本差不多,你只需要把东西换一下:

from PIL import Image

baseheight = 560
img = Image.open('fullsized_image.jpg')
hpercent = (baseheight / float(img.size[1]))
wsize = int((float(img.size[0]) * float(hpercent)))
img = img.resize((wsize, baseheight), Image.ANTIALIAS)
img.save('resized_image.jpg')

注意 basewidth 现在换成了 baseheight,因为高度是固定的。在第三行中,我们在计算高度百分比,所以我们需要 img.size[1] 而不是 img.size[0]size 属性是一个元组,包含宽度和高度,单位是像素,size[0] 指的是第一个元组元素,也就是宽度,size[1] 是第二个元素,也就是高度。第 4 行也有这样的切换,size[0] 代表宽度,size[1] 代表高度。


via: https://opensource.com/life/15/2/resize-images-python

作者:Dayo Ntwari 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这款全屏编辑器可以帮助你设定写作目标,并将干扰降到最低,从而实现你的目标。

计算机的好处是,它们真的很擅长一心多用。

计算机的坏处是,它们实在太擅长一心多用。

无论你认为自己作为一个人,在多任务处理方面是好是坏,有时你需要一点帮助来集中注意力,尤其是当你试图撰写清晰和简明的交流信息时。而这正是开发 Focuswriter 的原因。

安装

在 Linux 上,你可以从 Flathub 以 Flatpak 包安装 Focuswriter。

在 Windows 或 Linux 上(如果你不使用 Flatpak),你可以从它的网站安装 Focuswriter。你也可以从源代码安装,它也可以从 Focuswriter 网站上获得。

使用 Focuswriter

不可否认,Focuswriter 实际上处于文本编辑器和文字处理器的重叠的地带。它的默认格式是 开放文档文本 Open Document Text (.odt)格式,所以它允许你设置文本样式和对齐文本、标记页眉,以及开启和关闭智能引号。但它的文字处理器功能也就到此为止,因为 Focuswriter 确实主要专注于\_写作\_,而不是对你所写的东西进行样式设计。

Focuswriter 以几种不同的方式鼓励专注力:

吸引力

Focuswriter 看起来并不像你平常的电脑应用程序,更不像你平常的文本编辑器。当它启动时,它会在你的文档后面加载一个主题。主题一般是良性的 —— 默认是写字台,但也有星空、远方的风景等等。当然,你并不是要全神贯注于此主题,但它确实可以帮助你避免被徘徊于你的编辑器后面的其他应用窗口或电脑桌面分散注意力。因为它很容易定制,所以你几乎不大可能找不到你喜欢的主题。

 title=

音效

Focuswriter 使用起来其实很有趣。除了视觉主题外,它还有一个\_可选的\_打字机音频主题。启用后,每按一次键都会发出机械打字机按键的声音。当你按下回车键时,回车的声音令人满意,这是对你完成一段文字(或一行文字,如果你为了改善版本控制而每行写一句话)的奖励。

这个音频主题完全是可选的,默认情况下是不开启的。你可能会怀疑它的效果,但你不应该低估发出这些生产力声音而有具有现代文本编辑能力所带来的满足感。

全屏显示

Focuswriter 不仅在默认情况下启动全屏,而且还从视图中隐藏了其菜单和其他部件。要访问主菜单栏,你要将光标放在屏幕顶部,直到它出现。右边隐藏了一个滚动条,左边隐藏了一个文档切换器小部件,底部则隐藏着一个状态栏。

极简主义

Focuswriter 的编辑功能并不多。它没有高级搜索选项,也没有代码格式化或语法高亮的专门选项。它的设计是让你在文档中写入文本,而不是其他的什么。即使是上下文右键菜单也只提供基本的编辑功能(复制、剪切、粘贴等)或拼写检查选项。

聚焦一行

Focuswriter 的另一个可选功能是它能够“灰化”除了你的当前文本行之外的所有文本行。这可以帮助你的眼睛懒洋洋地定位你当前的文字行,如果你不是一个盲打打字员,或者如果你正在抄写一些你手写在纸张上的东西,眼睛必须经常远离屏幕,这可能特别有用。

目标追踪

你可以在 Focuswriter 的首选项中为自己设置一个每日字数目标或定时目标。当你工作时,你的进度会被跟踪,并显示在屏幕底部的状态栏中。除非你将光标悬停在它上面,否则它是隐藏在你的视野中的,所以你不会被迫沉迷于它,但它足够方便,可以帮助你保持进度。

即使你认为它很傻,也请尝试一下 Focuswriter

以前也听说过全屏文本编辑器,但我一直不觉得全屏文本编辑器对我来说有什么重要意义。毕竟,几乎所有的应用程序都可以全屏显示,而我个人也没有任何关注力问题。

不过在尝试过 Focuswriter 之后,我明白了一个好的全屏“关注力优先”文本编辑器的魅力所在。也许没有必要,但话又说回来,开源是如此的兴盛,我们有大量的冗余应用,这些应用功能略有差异,但实现上差异很大。Focuswriter 让写作变得有趣,它让工作变得愉快。下载它,设定一个目标,然后开始写作吧!


via: https://opensource.com/article/20/12/focuswriter

作者:Seth Kenlon 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

通过编写一个简单的游戏来认识 Lua,它是一种动态类型的、轻量级的、高效的、可嵌入的脚本语言。

 title=

如果你是 Bash、Python 或 Ruby 等脚本语言的爱好者,你可能会发现 Lua 很有趣。Lua 是一种动态类型的、轻量级的、高效的、可嵌入的脚本语言,它有与 C 语言的 API 接口。它通过基于寄存器的虚拟机解释字节码来运行,它可以用于过程式编程、函数式编程和数据驱动编程等编程方式。它甚至可以通过巧妙地使用数组(即“ table ”)来模拟类,以用于面向对象的编程。

感受一门语言的好方法是通过编写一个你已经熟悉的简单应用。最近,一些作者已经演示了如何使用他们最喜欢的语言来创建一个“猜数字”游戏。Lua 是我最喜欢的语言之一,所以这是我的 Lua 版猜数字游戏。

安装 Lua

如果你是在 Linux 上,你可以从你的发行版仓库中安装 Lua。在 macOS 上,你可以从 MacPortsHomebrew 安装 Lua。在 Windows 上,你可以从 Chocolatey 安装 Lua。

安装 Lua 后,打开你最喜欢的文本编辑器,可以准备编写了。

Lua 代码

首先,你必须设置一个伪随机数生成器,这样你的玩家就有一些不可预知的东西来尝试猜测。这是一个两个步骤的过程:首先,你根据当前的时间生成一个随机种子,然后在 1 到 100 的范围内选择一个数字:

math.randomseed(os.time())
number = math.random(1,100)

接下来,创建一个 Lua 所谓的 table 来表示你的玩家。表就像一个 Bash 中的数组或 Java 中的 ArrayList。你可以创建一个表,然后分配与该表相关的子变量。在这段代码中,player 是表,而 player.guess 是表中的一个条目:

player = {}
player.guess = 0

处于调试的需求,可以输出这个秘密数字。这对游戏并不合适,但对测试很有帮助。Lua 中的注释是在前面放双破折号:

print(number) --debug

接下来,设置一个 while 循环,当分配给 player.guess 的值不等于代码开始时建立的随机的 number 时,循环将永远运行。目前,player.guess 被设置为 0,所以它不等于 number。Lua 的不等式数学运算符是 ~=,诚然这很独特,但过一段时间你就会习惯。

在这个无限循环的过程中,首先游戏会打印一个提示,让玩家明白游戏的内容。

接下来,Lua 会暂停,等待玩家输入猜测的数。Lua 使用 io.read 函数从文件和标准输入 (stdin) 中读取数据。你可以将 io.read 的结果分配到一个变量中,这个变量是在 player 表中动态创建的。处理玩家输入的问题是,即使它是一个数字,它也是作为一个字符串读取的。你可以使用 tonumber() 函数将这个输入转换为整数类型,将结果赋值回初始为 0player.guess 变量:

while ( player.guess ~= number ) do
  print("Guess a number between 1 and 100")
  player.answer = io.read()
  player.guess = tonumber(player.answer)

现在 player.guess 包含了一个新的值,它将与 if 语句中的随机数进行比较。Lua 使用关键字 ifelseifelse,并用关键字 end 来结束该语句:

  if ( player.guess > number ) then
    print("Too high")
  elseif ( player.guess < number) then
    print("Too low")
  else
    print("That's right!")
    os.exit()
  end
end

最后,函数 os.exit() 在成功后关闭应用,关键字 end 使用了两次:一次是结束 if 语句,另一次是结束 while 循环。

运行应用

在终端上运行游戏:

$ lua ./guess.lua
96
Guess a number between 1 and 100
1
Too low
Guess a number between 1 and 100
99
Too high
Guess a number between 1 and 100
96
That's right!

就是这样!

直观且一致

从这段代码中可以看出,Lua 是非常一致且相当直观的。它的表机制是一种令人耳目一新的数据关联方式,它的语法也是简约而高效的。Lua 代码中几乎没有浪费的行,事实上,这个例子中至少有两行可以进一步优化,但我想把数据转换作为它的步骤来演示(也许你可以找到我所指的两行,并对它们进行重构)。

Lua 非常易于使用,它的文档阅读起来很愉快,主要是因为它的内容实在是不多。你会在短时间内学会核心语言,然后你就可以自由地探索 LuaRocks,发现别人贡献的各种很棒的库。“Lua” 在葡萄牙语中的意思是“月亮”,所以今晚可以尝试一下。


via: https://opensource.com/article/20/12/lua-guess-number-game

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

以下是我如何通过很多微妙复杂的方式来保持终端的简单和我的点文件的安全。

 title=

我要向大家坦白。我成为 Mac 用户已经有 10 多年了。起初,鉴于我强大的 Linux 背景,我觉得有点惭愧,但 Mac 给了我一个类似 Unix 的 Shell 和一个伟大的窗口管理器。因为这段历史,我有一个合二为一的功能,它运行在 macOS 上,但又为 Linux 用户所熟悉。没有理由它不能移植到 Linux 上(而且它已经移植了!)。

在 Mac 上使用 iTerm2

很长时间以来,我首选的终端是基本的内置 Term.app,但我最近改用了 iTerm2,因为它有更好的自定义和配置文件支持。对我来说,它的一个主要优点是可以轻松地在 Mac 之间移植配置。对于日常使用,我更喜欢 Solarized Dark 主题;但对于演示文稿,我有一个单独的配置文件,可以放大文本,并使用色彩更鲜艳的纯黑色背景。

要使 iTerm2 可用,我首先要做的是配置 Ctrl+LeftCtrl+Right 箭头,使其尊重经典的终端行为,即跳转到单词边界的开始和结束。要做到这一点,请导航到 “Preferences > Profiles > Your Profile > Keys” 并输入以下内容:

  • 键盘快捷键:^←
  • 行动:发送 Escape 序列
  • Esc+:b

然后是另一个:

  • 键盘快捷键:^→
  • 行动:发送 Escape 序列
  • Esc+:f

了解更多关于 iTerm2 的内容,享受自定义体验。

一个简单的命令提示符

我是那种无聊的终端提示符用户。我不想在其中包含 Git 目录或退出代码,我也只用单行提示符。我唯一使用的花哨组件是 kubectx ,它包括当前的 Kubernetes 上下文。作为一位 OpenShift Dedicated 的站点可靠性工程师(SRE),我必须在运行命令时有相应的上下文,而 kubectx 让我在打字时很容易知道自己在哪里。所以,我的 Bash PS1 就是无聊的 username@host cwd $,免除了 Kubernetes 上下文前缀。(LCTT 译注:如果想将 Kubernetes 上下文和名字空间显示在 PS1,可以看看 kube-ps1。)

毫无疑问,与我见过的一些花哨的终端相比,我是偏向于极简的。有些人喜欢透明背景,有些人则喜欢他们的提示符上有很多信息 —— 从时间到退出代码以及其他一切。我觉得这些在我的终端上会让人分心,所以我很喜欢远离的那些设置。

精美复杂的点文件

与我的极简主义终端相比,很容易看出我在哪里投入了最大的努力:部署我的点文件,包括我的 .bash_profile 和我的整体 Mac 设置。

我使用通过 GitHub 托管的 一系列 Makefile 来管理我的 Mac 设置。这将会拉取我的点文件专用部署机制,它也在 GitHub 上。你要问为什么要围绕安全做这些工具?IT 专业人士和业余爱好者都需要一种强大的方式来将安全的数据片段放在新系统上。也许你想要你的 SSH 配置是隐藏的,或者你通过第三方系统部署凭证。我发现把我的安全数据和其他一切数据放在一起是很有用的,我用 Ansible Vault 解决了这个问题。我所有的机密信息都存储在 Git 中,用 Ansible Vault 加密。解密是用 Makefile 处理的。

无论是第一次安装还是更新现有的点文件,我(当然)都必须有 Ansible Vault,为了避免到处安装,我把它放在一个用 Docker 运行的容器里,这样我就到处都安装好了。我把解密口令放到一个文件中, run make,然后用 make clean 清理一切。你可以通过探索这些点文件来了解更多)。

我想说的是,这种管理方案可能过于夸张,而有些人喜欢复杂的终端提示。所以,也许在权衡之下,一切都会变得平衡。


via: https://opensource.com/article/20/6/iterm2-mac

作者:Lisa Seelye 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Nextcloud 拥有流行的 Markdown 文件的最流畅的编辑器之一,它有很多方便和直观的功能。

纯文本的好处是,没有额外的针对计算机的信息会杂乱无章地出现在原本供人类阅读的文字中。计算机的好处是它们是可编程的,因此只要我们人类同意在写作时遵循非常特定的惯例,我们就可以对计算机进行编程,将人类可读的文本解释为秘密指令。例如,我们在一个词的周围打上两个星号,不仅可以给人类一个视觉上的提示,说明这个词很重要,我们还可给计算机编程让它用粗体显示这个词。

这正是 Markdown 背后的理论和实践,这种流行的纯文本格式向作者们承诺,只要\_他们\_使用特定的纯文本约定,那么他们的文本就会以特定的风格呈现。

传统中,这意味着作者用纯文本写作,直到文本被传给转换器应用(最初是 markdown.pl),才会看到漂亮的样式,但 Nextcloud 的 Markdown 编辑器应用改变了这一点。

通过 Nextcloud 的 Markdown 编辑器,你可以一边输入纯文本,一边看到它渲染后的样式。这对于那些要努力记住 Markdown 有时令人困惑的符号的作者们无异于是救星(方括号是在小括号中的超链接之前还是之后?)。而且更好的是,它运行在 Nextcloud 中,所以你可以在任何地方使用它。

安装

要使用 Nextcloud 的 Markdown 编辑器,你必须安装 Nextcloud。好消息是,Nextcloud 非常\_容易\_安装。我已经在树莓派、共享服务器、甚至作为一个本地应用安装了它(这是愚蠢的,不要这样做)。如果你不相信自己的能力,你甚至可以依靠 Turnkey Linux 来帮你完成这些难关,否则就直接从 Nextcloud.com 购买托管服务。在你安装 Nextcloud 后,添加应用就很简单了。点击 Nextcloud 界面右上角的用户图标,选择 Apps。找到 Office and Text 类别,点击安装并启用 Markdown Editor

 title=

启动

激活后,Markdown 编辑器会与 Nextcloud 文件中任何以 .md 结尾的文件相关联,当你打开一个 Markdown 文件时,你就会启动 Markdown 编辑器。

使用 Markdown 编辑器

Markdown 编辑器包含了一个大的文本区域供你输入,以及一个沿着顶部的工具栏。

 title=

工具栏包含了文字处理器的基本功能:用粗体、斜体和删除线设计文本样式、创建标题和段落、列表等等。

如果你了解 Markdown,这些功能中的许多可以在你输入时自动调用。如果你不熟悉 Markdown,那么工具栏或常用的键盘快捷键(Ctrl+B 表示粗体,Ctrl+I 表示斜体等等)可以帮助你设计文本的样式。

Markdown 编辑器的工作方式的最好的一点是,它真正做到了使人人满意:如果你想以 Markdown 格式输入,那么它就会接受它并立即将其转化为视觉样式;如果你不想操心 Markdown 语法,那么当你使用键盘快捷键或工具栏按钮时,它就会为你生成样式。无论哪种方式,你永远不会看到 Markdown 语法格式,但你也永远不会失去它。这是一个完美的折中方案。

它也是一个非常聪明的编辑器。当你选择一个单词时,它会为你创建一个超链接,它能快速流畅地自动转换 Markdown,而且它知道一些不同“风格”的 Markdown 语法(主要是 Commonmark,但也有传统的 Markdown、Github Markdown,等等)。

 title=

尝试 Nextcloud

我用过几个 Markdown 预览应用,Nextcloud 的 Markdown 编辑器是最流畅的一个。它尊重用户,并为显示 Markdown 做了最基本的工作,所以它的转换速度很快,也很准确。因为它是 Nextcloud 中的一个应用,你还可以获得这样的好处:你的作品可以即时保存在自己的私有的开源云上,并进行版本控制。没有比这更好的文本编辑器了。


via: https://opensource.com/article/20/12/nextcloud-markdown

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出