2017年4月

目前为止,在一系列介绍 vim 插件文章中,我们介绍了使用 Pathogen 插件管理包安装基本的 vim 插件,也提及了另外三个插件:Tagbar、delimitMateSyntastic。现在,在最后一部分,我们将介绍另一个十分有用的插件 a.vim。

请注意所有本篇教程所提及的例子、命令和指导,它们已经在 Ubuntu 16.04 测试完毕,vim 使用版本为 vim7.4 (LCTT 译注:Ubuntu 16.04 的默认版本)。

A.vim

如果你一直用像 C、C++ 这样的语言进行开发工作,你一定有这样的感触:我特么已经数不清我在头文件和源代码之间切换过多少次了。我想说的是,确实,这个操作十分基本,十分频繁。

尽管使用基于 GUI(图形界面)的 IDE(集成开发环境)非常容易通过鼠标的双击切换文件,但是如果你是资深 vim 粉,习惯用命令工作就有点尴尬了。但是不要害怕,我有秘籍--插件 a.vim。它可以让你解决尴尬,专治各种文件切换。

在我们介绍这个神器用法之前,我必须强调一点:这个插件的安装过程和我们其他篇介绍的不太一样,步骤如下:

  • 首先,你需要下载两个文件(a.vimalternate.txt),你可以在这里找到它们。
  • 接下来,创建如下目录:~/.vim/bundle/avim~/.vim/bundle/avim/doc~/.vim/bundle/avim/plugin~/.vim/bundle/autoload
  • 创建好目录之后,将 a.vim 放到 ~/.vim/bundle/avim/plugin~/.vim/bundle/autoload,以及将 alternate.txt 放到 ~/.vim/bundle/avim/doc

就是这样,如果上述步骤被你成功完成,你的系统就会安装好这个插件。

使用这个插件十分简单,你仅仅需要运行这个命令 :A 如果目前的文件是源文件(比如 test.c),这个神器就会帮你打开 test.c 对应的头文件(test.h),反之亦然。

当然咯,不是每个文件对应的头文件都存在。这种情况下,如果那你运行 :A 命令,神器就会为你新建一个文件。比如,如果 test.h 不存在,那么运行此命令就会帮你创建一个 test.h,然后打开它。

如果你不想要神器开启此功能,你可以在你的家目录的隐藏文件 .vimrc 中写入 g:alternateNonDefaultAlternate 变量,并且赋给它一个非零值即可。

还有一种情况也很普遍,你需要打开的文件并非是当前源代码的头文件。比如你目前在 test.c 你想打开 men.h 这个头文件,那么你可以输入这个命令 :IH <filename> ,毋需赘言,你肯定要在后面输入你要打开的的文件名称 <filename>

目前为止,我们讨论的功能都仅限于你当前文件和要操作的文件都在同一个目录去实现。但是,你也知道,我们还有特殊情况,我是说,许多项目中头文件与对应的源文件并不一定在同一目录下。

为了搞定这个问题,你要使用这个 g:alternateSearchPath 这个变量。官方文档是这么解释的:

这个插件可以让用户配置它的搜索源文件和头文件的搜索路径。这个搜索路径可以通过设置 g:alternateSearchPath 这个变量的值指定。默认的设定如下:

g:alternateSearchPath = 'sfr:../source,sfr:../src,sfr:../include,sfr:../inc' 

使用这个代码表示神器将搜索 ../source../src../include../inc 下所有与目标文件相关的文件。 g:alternateSearchPath 变量的值由前缀和路径组成,每个单元用逗号隔开。 sfr 前缀是指后面的路径是相对于目前文件的,wdr 前缀是指目录是相对于目前的工作目录, abs 是指路径是绝对路径。如果不指定前缀,那么默认为 sfr

如果我们前文所提及的特性就能让你觉得很炫酷,那我不得不告诉你,这才哪跟哪。还有一个十分有用的功能是分割 Vim 屏幕,这样你就可以同时看到头文件和相应的源文件。

哦,还有,你还可以选择垂直或者水平分割。全凭你心意。使用 :AS 命令可以水平分割,使用 :AV 可以垂直分割。

Vim.a vertical split screen

vim.a horizontal split screen

使用 :A 命令在已经打开的文件中切换。

这个插件还可以让你在同一个 Vim 窗口中不同选项卡中打开多个相应的文件,你键入这个命令 :AT

tabs in Vim with a.vim.

当然,你可以用这些命令 :AV:AS:AT,也可以使用这些命令 :IHV:IHS:IHT

最后

还有许多和编程相关的 Vim 的插件,我们在这个三篇系列主要讨论的是,如果你为你的软件开发工作安装了合适的插件,你就会明白为什么 vim 被叫做编辑器之神。

当然,我们在这只关注编程方面,对于那些把 Vim 当做日常文档编辑器的人来说,你也应该了解一些 Vim 的插件,让你的编辑更好,更高效.我们就改日再谈这个问题吧。


via: https://www.howtoforge.com/tutorial/vim-editor-plugins-for-software-developers-3/

作者:Ansh 译者:Taylor1024 校对:wxy

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

继上篇“漫画赏析: Vi 还是不 Vi,这是个问题”,已经有一段日子。于是,昨天 (2017 年 03 月 28 日) 翻了翻 Daniel 的漫画,看到了这篇有点委婉的漫画,遂将之进行汉化并分享给大家。

user-space-election

如上图,用户空间选举大会中,各大进程都参与竞选。但是呢,结果出乎大家意料,这个大家都不熟悉的 Prumt 先生赢得了主席之位。

在这位 Prumt 主席上位之后,他高调宣布了一些决定:废除 Unicode 编码,重新启用使用范围较小的 ASCII 编码。

这是不是很排外呢?看到这幅漫画的小伙伴,你想到了什么呢?


via: http://turnoff.us/geek/user-space-election/

作者:Daniel Stori 译者:GHLandy 校对:wxy

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

10 Best Linux Terminals

对于 Linux 用户来说,最重要的应用程序之一就是终端仿真器。它允许每个用户获得对 shell 的访问。而 Bash 是 Linux 和 UNIX 发行版中最常用的 shell,它很强大,对于新手和高级用户来说,掌握 bash 都很有必要。因此,在这篇文章中,你可以了解 Linux 用户有哪些优秀的终端仿真器可以选择。

1、Terminator

这个项目的目标是创造一个能够很好排列终端的有用工具。它受到一些如 gnome-multi-term、quadkonsole 等程序的启发,重点是以网格的形式排列终端。

特性浏览

  • 以网格形式排列终端
  • Tab 设定
  • 通过拖放重新排布终端
  • 大量的快捷键
  • 通过 GUI 参数编辑器保存多个布局和配置文件
  • 同时对任意组合的终端进行输入

terminator linux terminals

你可以通过下面的命令安装 Terminator:

sudo apt-get install terminator

2、Tilda - 一个可以下拉的终端

Tilda 的独特之处在于它不像一个普通的窗口,相反,你可以使用一个特殊的热键从屏幕的顶部拉下和收回它。 另外,Tilda 是高度可配置的,可以自定义绑定热键,改变外观,以及其他许多能够影响 Tilda 特性的选项。

在 Ubuntu 和 Fedora 上都可以使用包管理器安装 Tilda,当然,你也可以查看它的 GitHub 仓库

tilda linux terminal

3、Guake

Guake 是一个和 Tilda 或 yakuake 类似的下拉式终端仿真器。如果你知道一些关于 Python、Git 和 GTK 的知识的话,你可以给 Guake 添加一些新的特性。 ​ Guake 在许多发行版上均可用,所以如果你想安装它,你可以查看你的版本仓库。

特性浏览

  • 轻量
  • 简单易用且优雅
  • 将终端自然地集成到 GUI 之中
  • 当你使用的时候出现,一旦按下预定义热键便消失(默认情况下是 F12)
  • 支持Compiz 透明
  • 多重 Tab
  • 丰富的调色板
  • 还有更多……

主页:http://guake-project.org/

4、ROXTerm

如果你正在寻找一个轻量型、高度可定制的终端仿真器,那么 ROXTerm 就是专门为你准备的。这是一个旨在提供和 gnome-terminal 相似特性的终端仿真器,它们都基于相同的 VTE 库。它的最初设计是只占用很小的资源并且能够快速启动,它具有比 gnome-terminal 更强的可配置性,更加针对经常使用终端的 “Power” 用户。

roxterm linux terminal

主页:http://roxterm.sourceforge.net/index.php?page=index&lang=en

5、XTerm

Xterm 是 Linux 和 UNIX 系统上最受欢迎的终端仿真器,因为它是 X 窗口系统的默认终端仿真器,并且很轻量、很简单。

xterm linux terminal

6、Eterm

如果你正在寻找一个漂亮、强大的终端仿真器,那么 Eterm 是你最好的选择。Eterm 是一个彩色 vt102 终端仿真器,被当作是 Xterm 的替代品。它按照自由选择的哲学思想进行设计,将尽可能多的权利、灵活性和自由交到用户手中。

etern linux terminal

主页: http://www.eterm.org/

7、Gnome Terminal

Gnome Terminal 是最受欢迎的终端仿真器之一,它被许多 Linux 用户使用,因为它默认安装在 Gnome 桌面环境中,而 Gnome 桌面很常用。它有许多特性并且支持大量主题。

在许多 Linux 发行版中都默认安装有 Gnome Terminal,但你如果没有的话,也可以使用你的包管理器来安装它。

gnome terminal

8、Sakura

Sakura 是一个基于 GTK 和 VTE 的终端仿真器。它是一个只有很少依赖的终端仿真器,所以你不需要先安装一个完整的 GNOME 桌面才能有一个像样的终端仿真器。

你可以使用你的包管理器来安装它,因为 Sakura 在绝大多数发行版中都是可用的。

9、LilyTerm

LilyTerm 是一个基于 libvte 的终端仿真器,旨在快速和轻量,是 GPLv3 授权许可的。

特性浏览

  • 低资源占用
  • 多重 Tab
  • 配色方案丰富
  • 支持超链接
  • 支持全屏
  • 还有更多的……

lilyterm linux terminal

10、Konsole

如果你是一名 KDE 或 Plasma 用户,那么你一定知道 Konsole,因为它是 KDE 桌面的默认终端仿真器,也是我最喜爱的终端仿真器之一,因为它很舒适易用。

它在 Ubuntu 和 fedora 上均可用,但如果你在使用 Ubuntu (Unity),那么你需要选择别的终端仿真器,或者你可以考虑使用 Kubuntu 。

konsole linux terminal

结论

我们是 Linux 用户,根据自己的需求,可以有许多选择来挑选更好的应用。因此,你可以选择最好的终端来满足个人需求,虽然你也可以选择另一个 shell 来满足个人需求,比如你也可以使用 fish shell。


via: http://www.linuxandubuntu.com/home/10-best-linux-terminals-for-ubuntu-and-fedora

作者:Mohd Sohail 译者:ucasFL 校对:jasminepeng

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

在这个系列的第七篇,我们来说一说什么是 Manjaro。Manjaro 是基于 Arch Linux 并且拥有一个漂亮的用户界面的操作系统。 Manjaro 并不像 Debian 或者 Arch 这些 Linux 发行版一样历史悠久,但是它依然十分的稳定而可靠,从而在各色发行版中显得鹤立鸡群。2011 年 Manjaro 才推出了第一个版本。从那以后它一直在不断的进步,今天最新的版本为 16.06.1,代号为 “Daniella”。(LCTT 译注:本文写作于 2016 年,当下最新版本是:17.0 )

为什么我认为 Manjaro 超越了其他的发行版? 我并没有强求你使用 Manjaro 来替代其他发行版,但是我会尝试说服你来使用 Manjaro。那么让我开始吧!

基于 Arch

就像许多人已经知道的那样,不开玩笑的说 Arch 绝对是一个优秀的发行版。但是它对于新手来说十分难以使用。许多新手根本就无法在非图形界面下完成 Arch 的安装。与之相反,Manjaro 有着一个好用的图形安装界面。所以那些想要尝试 Arch 但是又被它的高难度操作所困扰的人们可以去试试 Manjaro。Manjaro 很容易安装并且有着一个友好的用户界面。

桌面环境

Manjaro 在桌面环境上有着许多选择,比如 Xfce、KDE、Deepin、BspWM、Budgie、i3、LXDE、Cinnamon、Enlightenment、Netbook、Fluxbox、Gnome、JWM、LXQT、MATE、Openbox 和 PekWM。所有这些桌面环境在 Manjaro 中都十分漂亮。Manjaro 官方的桌面环境是 Xfce 和 KDE,而其他桌面环境则是社区支持的,我现在就是在 Manjaro 16.06.1 中使用 KDE Plasma 桌面环境。

运行着 KDE plasma 5.6.5 的 Manjaro 16.06.1

如果你不喜欢 Manjaro 中的 KDE 或者 Xfce,不用担心,你可以从软件包管理器中随时安装其他桌面环境。

从软件包管理器中下载 Budgie 桌面环境。

稳定并且独特的包管理机制

虽然 Manjaro 很新,但是它也很稳定。Manjaro 的最后一个版本装载的是Linux 内核 4.6.2。Manjaro 不仅仅稳定,更新也比较快。软件更新不久后,就会被它编译到它的库中。Manjaro 用 pacman 来管理它的软件包。Arch Linux 因 Pacman 而名震天下 (当然也饱受争议)。Manjaro 则使用 Octopi 来使其变得更加用户友好,Octopi 是一个用 Qt 编写的 pacman 的图形前端。Manjaro 很好的维护了他自己的库,这也是它的一个优势。

Octopi 软件包管理器

社区支持

和其他发行版一样,Manjaro 也是一个基于社区的 linux 发行版。当你需要的时候,社区里总是会有人来帮助你。除了 Xfce 和 KDE 是官方支持的以外,其他所有桌面的编译和维护都是由社区完成的。任何用户有了疑问都可以到社区来寻求帮助,这里总是会有真实的 Manjaro 用户来帮助你。

在这里,我仅仅只列出了这么几点原因,但是如果你开始使用它了,你会发现更多惊喜的。

还在考虑是否安装它? 如果你还在彷徨与是否使用 Manjaro 你可以先在 Virtualbox 中试试它,然后再考虑在实体机中安装它。如果你喜欢它,请在这个话题下评论吧,欢迎点赞,关注,丢香蕉给我们,么么哒。


原文: http://www.techphylum.com/2016/07/manjaro-linux-explained.html

作者:sumit rohankar 译者:Chao-zhi 校对:wxy

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

wkhtmltopdf 是一个开源、简单而有效的命令行 shell 程序,它可以将任何 HTML (网页)转换为 PDF 文档或图像(jpg、png 等)。

wkhtmltopdf 是用 C++ 编写的,并在 GNU/GPL (通用公共许可证)下发布。它使用 WebKit 渲染引擎将 HTML 页面转换为 PDF 文档且不会丢失页面的质量。这是一个用于实时创建和存储网页快照的非常有用且可信赖的解决方案。

wkhtmltopdf 的功能

  1. 开源并且跨平台。
  2. 使用 WebKit 引擎将任意 HTML 网页转换为 PDF 文件。
  3. 添加页眉和页脚的选项
  4. 目录生成 (TOC) 选项。
  5. 提供批量模式转换。
  6. 通过绑定 libwkhtmltox 来支持 PHP 或 Python。

在本文中,我们将介绍如何在 Linux 系统下使用 tar 包来安装 wkhtmltopdf。

安装 Evince (PDF 浏览器)

让我们在 Linux 系统中安装 evince (一个 PDF 阅读器)来浏览 PDF 文件。

$ sudo yum install evince             [RHEL/CentOS and Fedora]
$ sudo dnf install evince             [On Fedora 22+ versions]
$ sudo apt-get install evince         [On Debian/Ubuntu systems]

下载 wkhtmltopdf 源码文件

使用 wget 命令根据你的 Linux 架构来下载 wkhtmltopdf 源码文件,或者你也可以在 wkhtmltopdf 下载页下载最新的版本(目前最新的稳定版是 0.12.4)

在 64 位 Linux 系统中:

$ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

在 32 位 Linux 系统中:

$ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-i386.tar.xz

在 Linux 中安装 wkhtmltopdf

使用 tar 命令解压文件到当前目录中。

------ On 64-bit Linux OS ------
$ sudo tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz 
------ On 32-bit Linux OS ------
$ sudo tar -xvzf wkhtmltox-0.12.4_linux-generic-i386.tar.xz 

为了能从任意路径执行程序,将 wkhtmltopdf 安装到 /usr/bin 目录下。

$ sudo cp wkhtmltox/bin/wkhtmltopdf /usr/bin/

如何使用 wkhtmltopdf?

我们会看到如何将远程的 HTML 页面转换成 PDF 文件、验证信息、使用 evince 在 GNOME 桌面中浏览创建的文件。

将 HTML 网页转成 PDF 文件

要将任意 HTML 页面转换成 PDF,运行下面的命令。它会在当前目录下将页面转换成 10-Sudo-Configurations.pdf

# wkhtmltopdf http://www.tecmint.com/sudoers-configurations-for-setting-sudo-in-linux/ 10-Sudo-Configurations.pdf

示例输出:

Loading pages (1/6)
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done

浏览生成的 PDF 文件

为了验证创建的文件,使用下面的命令。

$ file 10-Sudo-Configurations.pdf

示例输出:

10-Sudo-Configurations.pdf: PDF document, version 1.4

浏览生成的 PDF 文件细节

要浏览生成的文件信息,运行下面的命令。

$ pdfinfo 10-Sudo-Configurations.pdf

示例输出:

Title:          10 Useful Sudoers Configurations for Setting 'sudo' in Linux
Creator:        wkhtmltopdf 0.12.4
Producer:       Qt 4.8.7
CreationDate:   Sat Jan 28 13:02:58 2017
Tagged:         no
UserProperties: no
Suspects:       no
Form:           none
JavaScript:     no
Pages:          13
Encrypted:      no
Page size:      595 x 842 pts (A4)
Page rot:       0
File size:      697827 bytes
Optimized:      no
PDF version:    1.4

浏览创建的文件

在桌面中使用 evince 查看最新生成的 PDF 文件。

$ evince 10-Sudo-Configurations.pdf

示例截图:

在我的 Linux Mint 17 中看起来很棒。

View Website Page in PDF

在 PDF 中浏览网页

给 PDF 创建页面的 目录 Table Of Content (TOC)

要创建一个 PDF 文件的目录,使用 toc 选项。

$ wkhtmltopdf toc http://www.tecmint.com/sudoers-configurations-for-setting-sudo-in-linux/ 10-Sudo-Configurations.pdf

示例输出:

Loading pages (1/6)
Counting pages (2/6)
Loading TOC (3/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done

要查看已创建文件的 TOC,再次使用 evince。

$ evince 10-Sudo-Configurations.pdf

示例截图:

看一下下面的图。它上看去比上面的更好。

Create Website Page to Table of Contents in PDF

在 PDF 中创建网页的目录

wkhtmltopdf 选项及使用

更多关于 wkhtmltopdf 的使用及选项,使用下面的帮助命令。它会显示出所有可用的选项。

$ wkhtmltopdf --help

作者简介:

我是 Ravi Saive,TecMint 的创建者。一个爱在网上分享的技巧和提示的电脑极客和 Linux 专家。我的大多数服务器运行在名为 Linux 的开源平台上。请在 Twitter、 Facebook 和 Google+ 等上关注我。


via: http://www.tecmint.com/wkhtmltopdf-convert-website-html-page-to-pdf-linux/

作者:Ravi Saive 译者:geekpi 校对:wxy

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

想要构建你自己的 URL 缩短器?这些开源项目使这个变得简单。

没有人喜欢一个非常长的 URL。

它们很难解析。但有时候,站点的深层目录结构还有最后加上的大量参数使得 URL 开始变得冗长。在 Twitter 添加自己的链接缩短服务之前的那些日子里,一个长的 URL 意味着不得不削减推文中珍贵的字符。

如今,因为很多原因,人们开始使用链接缩短器。这样人们可以更容易地输入或记住另一个冗长的网址。它们可以为社交媒体帐户带来一贯的品牌建设。它们使对一组网址进行分析变得更轻松。它们使得为频繁变化的网站 URL 提供统一的入口成为可能。

URL 缩短器确实有一些不足。在点击之前很难知道链接实际指向哪里,而且如果提供短网址服务消失,就会导致 烂链 linkrot 。但是尽管面临这些挑战,URL 缩短器不会消失。

但是,既然已经有这么多免费链接缩短服务,为什么还要自己构建?简而言之:方便控制。虽然有些服务可以让你选择自己的域名来使用,但得到的定制级别不同。使用自托管服务,你可以自己决定服务的运行时间、URL 的格式以及决定谁可以访问你的分析。这是你自己拥有并且可以操作的。

幸运的是,如果你想建立下一个 bit.ly、goo.gl 或 ow.ly,你可以有很多开源选项。你可以考虑下面几个。

Lessn More

Lessn More 是一个个人 URL 缩短器,用 PHP 写成,并从一个名为 Buttered URL 的较旧项目 fork 而来,而 Buttered URL 又是从一个名为 Lessn 的项目的分支衍生而来。Lessn More 能提供你对 URL 缩短器所预期的大部分功能:API 和书签支持、自定义 URL 等。还有一些有用的功能,比如可以让 Lessn More 使用单词黑名单来避免不小心创建不适当的 URL、避免“看着相似”的字符来使 URL 更易读、能够选择是否使用混合大小写的字符,以及一些其它有用的功能。

Lessn More 在 GitHub 上以三句版 BSD 许可证公布了源代码

Polr

Polr 将自己描述为“现代、强大、可靠的 URL 缩短器”。它具有相当直接但现代化的界面,像我们这里详细介绍的其他选择那样,还提供了一个 API 来允许你从其他程序中使用它。在这三个可选品中,它在功能上是最轻量级的,但如果你正在寻找一个简单但功能完整的选择,那么这可能是你不错的选择。下载之前你可以查看在线演示

Polr 的源代码 在 GitHub 中以 GPLv2 许可证公布。

YOURLS

YOURLS,是 “Your Own URL Shortener”(你自己的 URL 缩短器)的缩写,它是我最熟悉的选择。我在个人网站上已经运行了好几年,并且对其功能非常满意。

它是用 PHP 编写的,YOURLS 功能非常丰富并且可以很好地开箱即用。你可以将其配置为任何人可公开使用,或只允许某些用户使用它。它支持自定义 URL,拥有书签功能,使得共享很容易,它还具有非常强大的内置统计信息,并支持可插拔的架构,以允许其他人添加功能。它还有一个 API,可以轻松地用它创建其他程序。

你可以在 Github 中找到 MIT 许可证下的 YOURLS 源代码


这些选择都不喜欢么?看下互联网,你会发现还有其他几个选择:shuriNimbusLstu 等等。除了这些选择外,构建链接缩短器可以作为帮助了解新语言或 Web 框架的第一次编程项目。毕竟,它的核心功能非常简单:以 URL 作为输入,并重定向到另一个 URL。除此之外,它取决于你自己想要添加的功能。

你有喜欢但没有在这里列出的 URL 缩短器吗?请在评论栏中让我们知道你的想法。


作者简介:

Jason Baker - Jason 热衷于使用技术使世界更加开放,从软件开发到阳光政府行动。Linux 桌面爱好者、地图/地理空间爱好者、树莓派工匠、数据分析和可视化极客、偶尔的码农、云本土主义者。在 Twitter 上关注他 @jehb。


via: https://opensource.com/article/17/3/url-link-shortener

作者:Jason Baker 译者:geekpi 校对:jasminepeng

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