《 Python树莓派编程》——2.6 文本编辑器

简介: 本节书摘来自华章出版社《Python树莓派编程》一书中的第2章,第2.6节,作者:[美]沃尔弗拉姆·多纳特(Wolfram Donat)著 韩德强 等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

本节书摘来自华章出版社《Python树莓派编程》一书中的第2章,第2.6节,作者[美]沃尔弗拉姆·多纳特(Wolfram Donat)著 韩德强 等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。


2.6 文本编辑器

不同于Windows和Mac系统(它们有诸如Notepad、Wordpad和Textedit等文本编辑器),在当谈及文本编辑器时,Linux有很多选择。在大多数发行版本中都包含一个标准的文档编辑器,叫做gedit。树莓派内也含有这个轻量级的编辑器。树莓派内置的编辑器,Leafpad,是一款十分优秀的编辑器。同时你也可以使用nano对文本进行编辑,这是另一款预装在树莓派内的文本编辑器,具有十分直观的界面。但当你需要用树莓派进行一些比较专业的编程工作时,你可能会使用Linux两个强有力的编辑器:vi和emacs。

vi和emacs不仅是强大的文本编辑器,同样也可用作IDE(Integrated Development Enviornment,集成开发环境),因为在其中编写时关键词的颜色会发生改变(语法高亮),而且单词也会自动补全。二者都可进行外部扩展,且可定制化。例如:emacs有超过2000条内置命令,而vi因其具有众多接口及版本,可进行定制化。实际上,vi的一个版本,Vim(Vi Improved,Vi提升版),也包含在几乎每个Linux发行版中,并且之后我会对其进行进一步讨论,因为相对于vi编辑器而言,vim更像一个IDE。通过Lisp扩展,emacs可以成为用户可编程的程序,但vi的不同版本可以满足每个人的不同喜好。

然而,在这两种编辑器之间存在一些竞争。Linux和UNIX用户只对其中一种编辑器持有浓烈的热情,对另一款则报以极大的偏见。因此当他们讨论二者各自的优缺点时,会变得十分激动。作为一名有良知的作者,我会在本书中对这两款软件都进行介绍,但作为一名执着的emacs用户,我会尽量避免对vim的批判。在本书中,我不会提及讨论的程序和脚本文件是如何编写的,最多是给出结果。你甚至可以用树莓派的Leafpad进行编程,这款编辑器同样适用。

2.6.1 vim、emacs与nano

vim是一个模式编辑器。它有两种工作模式:插入模式和普通模式。插入模式中,你输入的内容会成为文档的一部分。普通模式是用来控制编辑会话的。例如,当你在普通模式下输入字母“i”,则会切换至输入模式。当你再次输入“i”时,在你光标的位置上会输入字母“i”,正如一个文档编辑器该做的那样。通过对两种工作模式的切换,你可以创建并编辑你的文档。

另一方面,emacs则更为直观。你可以通过方向键在文档中进行移动,并且你在键盘上输入的内容都会出现在光标的位置之上。特殊的命令,例如复制/粘贴等这些通过按下Ctrl键实现的操作,通常都跟在其他按键之后,一般都是“x”。例如,如果你想要保存当前的文档,你需要先按下Ctrl-x,再按下Ctrl-s,在emacs的菜单中也突出显示了C-x C-s的组合。

然而,nano编辑器比之前的两者都要直观。你可以像其他编辑器一样输入文字,而且你经常使用的命令会显示在屏幕底部。

如果你想都体验一下(在你决定一件事之前,都尝试一下是个好主意),要确保你已经安装了三个编辑器。为此,你可以输入以下命令进行安装:

 ad98eaec639e0cbb956f5c923a6e590fdf860945

以及

 3c363a6439e3f381a6fe7ba197126f9027793cac

vim编辑器应该已经预装在树莓派中了,nano编辑器也一样。但emacs应该没有。需要注意,这将会下载大量的数据,所以安装这些程序及其所依赖的文件将会花费一定时间。所以在安装的同时,喝杯咖啡或者吃顿晚饭是个不错的选择。

1. 使用vim

我之前说过,vim是一个模式编辑器,这意味着你需要在输入模式和普通模式之间进行切换。现在让我们尝试着编写一个测试文件,将树莓派转移到桌面并输入:

 0121e2fb47a6137c19ba2dc51bcde4fb8aabdedc

之后,vim编辑器会在终端进行显示,而不是新建另一个窗口,因此如果你不适应的话,可能会有些困惑。你应该会看到一个类似于图2-4的界面。

vim编辑器是在普通模式下打开的,这意味着你不能立即编写文件。为了正常地编辑文件,你需要按下“i”键切换到输入模式。之后屏幕左下方会显示“INSERT”这个单词—无论是在输入模式或者普通模式,这都是一种很方便的提醒方式。当你完成了要输入的信息后,按下Esc键便可返回普通模式。在普通模式下,你可以通过方向键浏览文档,在输入模式下同样可以,但只有在输入模式下才可以改变或添加信息。当需要保存文件时,至少按一次Esc键确保你正处于普通模式下,输入“:w”(不带引号)并按Enter键即可退出。如果要同时保存并退出的话,输入“:x”(同样不带引号)并按下Enter键。很明显,如果你正处于输入模式,当输入这些字符时,结果只可能是将:w或:x添加至你的文档。

 759d74123547fe7513feafdc2a2dfd12485fe2cb

vim需要花一定时间去适应,而且很多人会把这两种不同模式的操作弄混。如果你倾向于这款文档编辑器,网上有很多教程教你如何充分发挥其潜力。

2. 使用emacs

emacs(至少对我而言)比vim更直观一些。尤其是当你第一次使用的时候。首先,打开一个终端并转到你测试文件的位置,例如桌面。之后输入:

 e378c109341310c382db282128026597df2d0c52

emacs会查找testfile.txt,如果该文件存在,emacs会打开该文件。如果不存在的话,会创建一个新的文件。之后你会看到一个空的面板,如图2-5所示。

之后你便可以开始编写了。表2-3列出了emacs中常见一些的命令。

47b56d211ac04d3fb90631272fe0b24f45a0ff3e

 8860ae67c07c80c71936ceaea7ba060dd672ff42


 

因此,如果你想要移动一行文字,首先将光标移至这一行的开始位置,按下Ctrl及空格键,界面左下方的状态会变为“Mark activated”。这时将光标移至行末,并按下Ctrl和“e”键。左下方的状态文字便消失了。现在你已经选中了那一行的文字,通过Ctrl+w对该行文字进行剪切,将光标移动到需要粘贴的位置,按下Ctrl+y便可进行粘贴操作。

适应这个过程会花费一些时间,所以如果你决定使用emacs的话,网上有很多教程可以指导你学习按键的一些操作。一旦学会了这些操作,使用起来会更加得心应手。但记住一点:一旦你不记得快捷键的话,记得去菜单里找,大多数命令都可在菜单中找到。

3. 使用nano

之前提及nano编辑器可能是3种编辑器中最容易使用且最容易适应的一个。在nano中编辑文件,只需在终端中输入:

 fe853128c346fe40ae2f238dfdb7d4630e44bbab

之后你就会看到如图2-6所示的界面。同其他两个编辑器一样,如果输入的文件存在,nano会打开该文件,不然则会创建一个新的文件。

 19f56afd95718e3dd612ba1941689b7cbc9de8fb

如图2-6所示,常用的命令都在屏幕下方罗列出来,其中上箭头(^)标志着Ctrl键。如果需要保存一个文件,输入Ctrl+X键退出,在退出之前会提示是否需要保存该文件,以及文件名的信息。一般来说,输入“Y”并按下Enter键可以保存刚刚打开或创建的文件。

2.6.2 Leafpad

我准备介绍的另一款编辑器是Leafpad编辑器,这是一款全特性的(可能是轻量级的)、具有图形化界面且预装在树莓派中的编辑器。打开树莓派桌面靠左下侧的图标,选择“Accessories”后再选择“Leafpad”即可打开该编辑器(见图2-7)。

 7c3c95f5b1ec2c4f4b30b97dd5b9aaaedc38f7a1

可以看到,它同你使用过的大多数编辑器类似,如Textedit或者Notepad。如果你习惯于使用这一类编辑器,选择这款即可。我不会经常提起这款编辑器,因为它的主要缺点是必须在树莓派图形化桌面才可以使用。如果你只是远程登录树莓派,并且工作在命令行模式下,Leafpad是无法工作的。

目录
打赏
0
0
0
0
1408
分享
相关文章
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
Python 高级编程与实战:深入理解设计模式与软件架构
本文深入探讨了Python中的设计模式与软件架构,涵盖单例、工厂、观察者模式及MVC、微服务架构,并通过实战项目如插件系统和Web应用帮助读者掌握这些技术。文章提供了代码示例,便于理解和实践。最后推荐了进一步学习的资源,助力提升Python编程技能。
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化和调试技巧,涵盖使用内置函数、列表推导式、生成器、`cProfile`、`numpy`等优化手段,以及`print`、`assert`、`pdb`和`logging`等调试方法。通过实战项目如优化排序算法和日志记录的Web爬虫,帮助你编写高效稳定的Python程序。
Python 编程基础与实战:从入门到精通
本文介绍Python编程语言,涵盖基础语法、进阶特性及实战项目。从变量、数据类型、运算符、控制结构到函数、列表、字典等基础知识,再到列表推导式、生成器、装饰器和面向对象编程等高级特性,逐步深入。同时,通过简单计算器和Web爬虫两个实战项目,帮助读者掌握Python的应用技巧。最后,提供进一步学习资源,助你在Python编程领域不断进步。
Python 高级编程与实战:深入理解面向对象与并发编程
本文深入探讨Python的高级特性,涵盖面向对象编程(继承、多态、特殊方法、类与实例属性)、异常处理(try-except、finally)和并发编程(多线程、多进程、异步编程)。通过实战项目如聊天服务器和异步文件下载器,帮助读者掌握这些技术,编写更复杂高效的Python程序。
Python 高级编程与实战:深入理解数据科学与机器学习
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化和调试技巧。本文将深入探讨 Python 在数据科学和机器学习中的应用,并通过实战项目帮助你掌握这些技术。
Python高级编程与实战:深入理解函数式编程与元编程
本文深入介绍Python的函数式编程和元编程。函数式编程强调纯函数与不可变数据,涵盖`map`、`filter`、`reduce`及`lambda`的使用;元编程则涉及装饰器、元类和动态属性等内容。通过实战项目如日志记录器和配置管理器,帮助读者掌握这些高级技术,编写更灵活高效的Python程序。
Python 高级编程与实战:深入理解并发编程与分布式系统
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧、数据科学、机器学习、Web 开发、API 设计、网络编程和异步IO。本文将深入探讨 Python 在并发编程和分布式系统中的应用,并通过实战项目帮助你掌握这些技术。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等