在GitHub上找到的特征匹配LPM算法代码项目怎么运行呢,用Visual Studio?

在程序员圈子里,Visual Studio Code(以下简称VSCode)可以说是目前最火的代码编辑器之一了。

它是微软出品的一款可扩展的轻量级开源编辑器,并且支持全平台系统。这些特性使得VSCode颇受欢迎,这也使其成为了一个很棒的Python开发平台。

在本文中,你将学到如何在VSCode中进行高效的Python开发,其中包括:

  • 安装插件让Python开发更便利
  • 编写一个简单的Python应用
  • 学习如何在VSCode中运行和调试已有的Python程序

文中会提供Ubuntu和Windows系统上的运行截图和样例,但由于VSCode还可以在其他主流平台上运行,所以你可能会在实际操作中看到略微有些差异的UI界面,一些命令的键位可能也需要修改。

在任何平台上安装VSCode都不是难事。微软提供了Windows,Mac和Linux平台上详尽的安装指引,并且每月都会有更新以推出新特性或修复已知问题。

这些都可以在VSCode官网上找到:

可能你会想,VSCode和那个庞大的Visual Studio名字这么像,它们会不会有什么关系呢?但其实,并没有,哈哈。

VSCode默认支持多种编程语言,并且有着丰富的扩展。VSCode每月更新,你可以在微软博客上随时关注更新的进展。微软甚至把代码开源在了Github上供所有开发者克隆仓库甚至贡献代码(暗示大家赶紧来提PR)。

VSCode的用户界面官方给出了详细的操作说明,如下图所示,在此不再赘述。

为Python开发安装插件

正如上文中提到,VSCode可以通过自身良好的扩展性质来支持各种编程语言的开发。

Python插件使我们可以更方便地在VSCode中进行Python开发,它有以下功能和特点:

事实上,VSCode插件并不仅是编程语言层面的,如下面这些:Keymaps可以改变

Themes可以定制用户界面外观,不管你是喜欢亮色、暗色或五彩斑斓的黑,它都能满足;Language提供了良好的本地化体验。

还有一些很有用的插件推荐给大家:

  • GitLens提供了许多可以直接在编辑窗口中使用的Git特性,包括blame标注和仓库探索等;
  • Autosave可以通过菜单栏File—Auto Save开启,顾名思义,它会以固定的时间间隔保存你的代码,默认是1000毫秒(1秒),这个值是可以配置的;
  • Settings Sync可以让你通过Github在多个VSCode安装中同步配置,如果你会在不同的机器上使用VSCode,这么做可以让你保持开发环境的一致性;

当然了,你也可以自己发掘其他有趣有用的插件,欢迎和大家分享你的发现!

可以通过点击左边活动栏的插件图标来进行插件或主题的发现和安装。你可以通过关键词来搜索插件,用多种方式排序搜索结果,并快捷方便地安装插件。

对于本文中使用到的Python插件,你可以搜索Python字样,然后在特定项上点击install进行安装。

同理,你可以用这种方式安装其他上面提到的插件。

VSCode通过用户(user)工作区(workspace)设置实现高度可配置化。

用户设置是应用于所有VSCode实例的全局性设置,而工作区设置是应用于特定文件夹或项目的局部设置。工作区设置给VSCode提供了极大的灵活性,我们在之后调出的都是工作区设置。

工作区设置以json格式保存在项目目录下.vscode文件夹中。

让我们从一个Python程序开始探索如何在VSCode中进行Python开发。你可以在VSCode中使用快捷键Ctrl+N来编辑一个新文件(也可以在菜单栏中选择File—New File)。

Tips:VSCode用户界面提供了命令盘(command palette)功能,使你可以手不离键盘就能搜索、执行各项命令。按下Ctrl+Shift+P打开命令盘,键入new file,按下回车,也可以编辑一个新文件。

无论用哪种方法,你应该可以看到类似下面这样的窗口:

新文件打开后,就可以开始写代码啦。

我们快速写一个埃拉托斯特尼筛法(用来寻找不超过一个数的所有质数)作为测试代码。从下面这两行开始:

你应该看到类似下面的场景:

等等,发生什么了?为什么VSCode没有任何关键词高亮,格式自动调整等有用的东西?要它何用?

答案是,目前VSCode还不知道你在写什么。这个文字缓冲区叫做Untitled-1,如果你看看窗口右下角,你会发现写着Plain Text,也就是说VSCode还不知道你在写Python代码。

为了让Python插件发挥作用,我们需要将文件存储为后缀为py的文件,如sieve.py。

你可以通过菜单栏File—Save File,或者按下Ctrl+S,或在命令盘键入save file来做到这一点。VSCode看到py后缀就会将文件解释为Python代码。现在你的窗口应该长这样:

好多了有没有!VSCode自动按照Python语言重新确定了格式,你可以在窗口左下角验证当前编程语言的正确性。

现在让我们完成剩余筛法代码。

为了能观察到IntelliSense发挥作用,请不要直接复制粘贴这段代码。亲手输入,你将看到下面的画面:

下面是埃拉托斯特尼筛法中“筛”这个部分的完整代码:

输入这段代码时,VSCode自动缩进了for和if下的语句,自动加上了结尾大括号,并为你提供输入建议。这就是IntelliSense的威力。

既然写完了代码,我们就可以运行它了。因为VSCode可以直接在编辑器里运行代码,所以我们完全不需要离开编辑器。按Ctrl+S保存文件,接着在编辑器窗口中点击鼠标右键,选择Run Python File in Terminal。

可以看见,窗口下方出现了Terminal选项卡,显示了代码的输出。

对Python代码检查器的支持

你可能在写代码的时候看见过一个弹出框,上面写着代码检查器不可用(linting was not available)。你可以在弹出框中快速安装一个代码检查器,默认安装的是PyLint。

Python代码检查器页面有配置每一种检查器的详细资料。注意,代码检查器的选择是项目级别的工作区设置,而不是全局用户设置。

编辑一个已有的Python项目

在埃拉托斯特尼筛法的例子中,你创建了一个单独的Python文件。这作为例子来讲很合适,但通常你会创建更大的项目,并在其上工作一段时间。一个典型的创建新项目的工作流程如下:

  • 创建一个存放项目的文件夹(其中可能包含一个新的Github项目)
  • 用命令代码创建一个初始Python代码文件

在Python项目中使用VSCode会给你带来更多精彩的功能,让我们看看VSCode是怎样对付大型工程的。

早在上个世纪我还是一名年轻的程序员时,我用调度场算法写过一个将算式解析为中缀表达式的计算器程序。为了展示VSCode中项目专属的特性,我将算法重构成了Python的一个算式求值库:

大家可以随意克隆至本地以进行后面的操作。

本地文件夹建好后,你可以通过VSCode快捷地打开整个文件夹,我比较喜欢下面这种方式:

当这样打开时,VSCode将检测到并开启任何项目中存在的virtualenv、pipenv或conda虚拟环境,你甚至都不用自己手动去启动虚拟环境!以下几种方式都可以在用户界面中打开一个文件夹:菜单栏中点击File—Open Folder;按下快捷键Ctrl+K或Ctrl+O;在命令盘中键入file:open folder。

我的公式求值库项目打开后看起来是这样的:

当VSCode打开文件夹时,它同时也会打开你最近打开的文件(这个行为是可配置的)。

你可以打开、编辑、运行、调试文件列表中的任何文件。

左侧活动区的探索者视图向你展示了文件夹中的所有文件,并告诉你在当前打开的选项卡中有多少编辑了但还没有保存的文件。

如果当前环境安装了测试框架,VSCode可以自动识别已有的用测试框架编写的测试代码。我用unittest为我的公式求值库写了一个单元测试,大家可以用它作为例子来学习。

你可以在项目中的任何一个文件中右键选择Run Current Unit Test File来运行已有的单元测试。VSCode会询问你使用哪种测试框架、项目中测试代码存放的路径,以及测试文件的命名方式。

这些设置都将作为工作去设置被保存在项目.vscode文件夹下的settings.json文件中,你也可以在那里更改这些设置。对于我的公式求值项目,我们选择用unittest框架,测试代码在当前目录下,测试代码命名为*_test.py。

一旦配置好了测试框架、找到了测试代码,你就可以点击状态栏的Run Tests来运行所有的测试。

你甚至可以通过点击状态栏的Run Tests,然后选择Run Unit Test Method来运行单个测试。这样我们就可以单独运行失败的测例,能够节省一大笔时间!测试结果输出在Output选项卡中。

即使VSCode是个编辑器,但在其中调试代码也是可行的。VSCode提供了许多好的代码调试器所拥有的特性:

它们作为调试视图的一部分被显示在活动栏中:

调试器可以控制Python应用在内置终端或远程终端实例上运行。它可以连接一个正在运行的Python实例,甚至可以调试Django和Flask应用。

用VSCode调试单个Python文件就和按F5启动调试器一样简单。

你可以按F10和F11来跳出或进入函数,按Shift+F5退出调试器。按F9或单击编辑框左侧区域来设置断点。

当你要开始调试像Django和Flask应用这种更复杂的项目时,需要进行调试配置。在调试视图中,选择配置下拉菜单中的添加配置,然后选择Python:

上面的配置存储在了.vscode/launch.json中,你可以针对像Django、Flask这种特殊应用的设立专门的配置。

你甚至可以远程调试,或是调试Jinja模板。这一切只需在配置下拉菜单中选择合适的配置项即可。

VSCode内置版本控制机制,并自带对Git和Github的支持,你也可以安装插件以支持其他版本控制软件。版本控制视图中提供了各种版本控制功能:

如果你的项目目录包含.git文件夹,那么VSCode自动开启完整的Git和Github支持。你可以进行的操作包括:

  • 向远程仓库推送更新,或从远程仓库拉更新
  • 切换已有分支或新建分支

所有这些事都可以直接在VSCode用户界面中完成:

VSCode也能识别来自编辑器外的文件内容改变并做出反应。

在VSCode中提交最近的代码更改是很方便直接的。在版本控制视图中,被修改的文件用M标记,新的未追踪文件用U标记。

鼠标悬浮于文件上,点击加号(+)来添加更改。在顶端输入提交信息,最后点击对勾来提交这些更改。

VSCode是目前最棒的通用编辑器,也是Python开发者的绝佳选择。通过这篇文章你学到了:

  • 如何查找、安装插件来开启对Python的支持

VSCode已经成为了我进行Python甚至其他项目开发时最常用的编辑器,推荐给你,希望你也可以试试看~

}

最基本的命令行使用方式是在code命令后加上文件或者文件夹的地址,这样VS Code 就会在一个新窗口中打开这个文件或文件夹。

如果你希望使用已经打开的窗口来打开文件,可以在code命令后添加参数 -r来进行窗口的复用。

这个命令可以方便你从终端里快速地在 VS Code 里打开一个文件进行预览,一个特别常见的例子就是当我们使用脚本执行某个命令,这个命令告诉我们某个文件的某一行出现了错误,我们就能够快速定位了。

VS Code 也可以用来比较两个文件的内容,你只需使用 -d参数,并传入两个文件路径,比如输入 code -r -d a.txt b.txt命令,就可以比较a.txt和b.txt两个文件的内容了。有了这个命令,你就可以既使用命令行运行脚本,也可以借助 VS Code 的图形化界面进行文件内容的对比了。

VS Code 命令行除了支持打开磁盘上的文件以外,也接受来自管道中的数据。这样你就可以将原本在命令行中展示的内容,实时地展示在 VS Code 里,然后在编辑器中搜索和修改。比如,你可以把当前目录下所有的文件名都展示在编辑器里,此时只需使用ls | code -命令。

  • -d用于两个文件做对比
  • ls | code - VS Code支持管道,利用管道可以将原本在命令行中展示的内容实时显示在VS Code中

在光标移动基础上加上shift按键就可以实现对文本的选中

  • delete+L:删除左边内容(自定义可以修改)
  • delete+R:删除右边内容(自定义可以修改)
  • Alt+上下键:移动一段代码。(会自动修改代码的缩进格式,非常方便)
  • ctrl+U:撤销本次光标移动


创建多光标的两个特殊命令

第一次按下时,它会选中光标附近的单词;第二次按下时,它会找到这个单词第二次出现的位置,创建一个新的光标,并且选中它。适用于处理多次出现的“相同”单词。

先选中代码,选中代码每一行的最后都会创建一个新的光标。这种方法是基于代码行的,如果你的需求是在同一行添加多个光标,那么就不适用了。

5.如何快速在文件、符号、代码之间跳转

按下ctrl+Tab然后继续按着 Ctrl键但是松开 Tab 键,这样你就可以打开一个文件列表,这个列表罗列了当前打开的所有文件。接下来,你可以通过按下 Tab键在这个列表里跳转,选择你想要打开的文件。最后选到你想打开的文件后,松开 Ctrl 键,这个文件就被打开了。

Alt+Z表示使文本自动换行。

当文件过多需要一直按住Tab键,这时按ctrl+P会跳出个最近打开文件的列表,同时在列表的顶部还有一个搜索框,使用这个搜索框来快速地找到你想要的文件,然后按下 Enter 键直接在当前窗口打开。按下ctrl+Enter在新窗口打开。

按下ctrl+g,编辑器就会出现一个输入框,直接输入行数。
如果你想跳转到某个文件的某一行,你只需要先按下ctrl+p,输入文件名,然后在这之后加上 :和指定行号即可。

VS Code 提供了一套 API 给语言服务插件,它们可以分析代码,告诉 VS Code 项目或者文件里有哪些类、哪些函数或者标识符(我们把这些统称为符号)。

按下ctrl+shift+O出现一个带着@符号的搜索栏,能够看到当前文件里的所有符号。使用方向键,或者搜索,找到你想要的符号后,按下回车,就能够立刻跳转到那个符号的位置。

@符号后加:就可以将当前文件的所有符号,进行分类,这样搜索符号也就更加方便。

有些语言除了提供单个文件里的符号,还支持在多个文件里进行符号跳转。比如在 VS Code 里,如果你打开了多个 JavaScript 文件,就可以按下ctrl+T ,搜索这些文件里的符号。

  • F12:跳转到函数的定义处
  • ctrl+F12:跳转到函数的实现的位置

这个命令实现也与语言本身有关, 比如JavaScript因为并没有接口(interface)的概念,定义和实现恰好是相同的。

很多时候,除了要知道一个函数或者类的定义和实现以外,你可能还希望知道它们被谁引用了,以及在哪里被引用了。这时你只需要将光标移动到函数或者类上面,然后按下 Shift + F12,VS Code 就会打开一个引用列表和一个内嵌的编辑器。在这个引用列表里,你选中某个引用,VS Code 就会把这个引用附近的代码展示在这个内嵌的编辑器里。

  • 单击鼠标左键就可以把光标移动到相应的位置。
  • 双击鼠标左键,则会将当前光标下的单词选中。
  • 连续三次按下鼠标左键,则会选中当前这一行代码。
  • 连续四次按下鼠标左键,则会选中整个文档。
  • 选中其中的多行代码:如果你单击行号,就能够直接选中这一行。如果你在某个行号上按下鼠标,然后上下移动,则能够选中多行代码。
  • 用鼠标进行剪切+粘贴:按下鼠标左键不松开,移动鼠标的话,就可以把这段文本拖拽到我们想要的位置
  • 用鼠标进行复制+粘贴:在拖拽这段文本的同时,按下ctrl键,这段文本将会被复制粘贴到虚拟光标所在的位置

7.代码自动补全、快速修复和重构

当我们想修改一个函数或者变量的名字时候,我们只需把光标放到函数或者变量名上,然后按下 F2,这样这个函数或者变量出现的地方就都会被修改。这个操作并不是一个粗暴的搜索关键词并替换,在上面的动图中你可以看到,最后一行代码里有个 bar3函数调用,但当我们去重命名bar这个函数时,bar3并没有受到影响。

ctrl+F能够快速地调出搜索窗口,编辑器就会把当前光标所在位置的单词自动填充到搜索框中。与此同时,当前文件里和搜索关键词相同的单词都会被高亮出来。

自动填充搜索关键词的好处在于,当我们按下 ctrl +F 搜索这个单词之后,我们还能够立刻通过回车键(向下)或者 shift+回车键(向上) 在所有搜索结果当中快速跳转。

首先我们将光标移动到我们想要搜索的单词处,然后按下F3,此时我们同样调出了搜索框,但与前面 ctrl +F这个快捷键不同的是,这时光标依然是在编辑器当中,而不是在搜索框中。

然后我们通过不断按下F3就能够在搜索结果之间自上而下地循环跳转,这时我们只需直接打字就能对代码进行修改了。如果我们想要在搜索结果里自下而上地跳转,只需增加shift键,按下shift+F3来实现自下而上的跳转。


第一个是大小写敏感。默认情况下,VS Code 的搜索是不区分大小写的,也就是说哪怕大小写不一样,也会算到搜索结果里去。但如果我们不想要这个特性,就可以点击右边第一个按钮,或者按下Alt + C来关闭它。

第二个是全单词匹配。有的时候我们搜索的单词恰好是别的某个单词中间的一部分,如果我们不希望这样的结果出现在搜索结果中,那么就可以点击这个按钮或按下 Alt + W来关闭它。

第三个,就是正则表达式匹配了。当我们点击这个按钮或按下Alt+R,就能够打开正则表达式的支持,然后在搜索框中输入正则表达式来搜索。要注意的是,编辑器中的这个搜索框,它里面的正则表达式使用的是 JavaScript 的正则引擎。

我们可以先选中一段文本,然后按下 Ctrl + F 调出搜索框,这之后点击这个按钮,就可以将这段文本的范围设置为接下来的搜索区域。然后当我们在输入框里输入关键字后,编辑器就只会在这个区域里进行搜索。

在搜索到我们想要的结果之后,我们可以直接在文件中进行修改,也可以使用替换窗口进行批量替换。如果你在使用鼠标或者是触控板的话,只需按一下搜索窗口最左侧的箭头按钮即可打开替换框。

我们也可以通过快捷键直接调出替换窗口。按下ctrl+H当前光标所在的单词就会被用作为搜索关键词,同时编辑器将光标移动到替换窗口中,我们只需直接输入想要替换的关键词就行了。

第一个按钮的功能是从差异编辑器跳转到一个普通的编辑器,并且打开这个文件。这样我们能够无干扰地进行编辑操作了。

第二个按钮控制的是:是否要在差异编辑器里显示代码里行末的空格符的变化。比如说你不小心在行末添加了几个空格,默认情况下,VS Code 觉得这几个空格不影响代码,就不会在差异编辑器里显示。但我建议把它打开,这样你就可以确保能够看到所有的代码改动。

接下来的两个箭头按钮,就是用于在当前文件里的多个变动之间进行跳转了。

}

     这个便捷的插件,将为你提供你在CSS 中使用颜色的相关信息。你只需在颜色上悬停光标,就可以预览色块中色彩模型的(HEX、 RGB、HSL 和 CMYK)相关信息了。

包含格式化功能,Alt+Shift+F(格式化全文),Ctrl+K Ctrl+F(格式化选中代码,两个Ctrl需要同时按着)

    —— ES6语法智能提示以及快速输入,除js外还支持.ts,.jsx,.tsx,.html,.vue,省去了配置其支持各种包含js代码文件的时间

 //非常强大的一款插件,能够运行多种语言的代码片段或代码文件:C,C ++,Java,JavaScript,PHP,Python,Perl,Ruby,Go等等,安装完成后,右上角出现:

点击这个按钮就可以运行你的文件了(必备)

 //在底部状态栏显示当前文件大小,点击后还可以看到详细创建、修改时间

以图表的形式查看git日志

html代码片段(必备)

可以在选中HTML标签中外面套一层标签

使用:选择一大段代码,然后按“Alt + W”

鼠标移到路径里显示图像预览

 自动提示jquery,如果是你一个重度JQ使用者,可以考虑安装

实时编译sass ,不过需要配置,附上我的配置

"mands:列出所有“更改案例”命令,如果仅选择一个单词,则带有预览 



替代你喜欢的配色,最后查看终端

修改代码之后想找回历史代码怎么办?

在使用Pycharm、IDEA时可以直接查看本地历史代码,然后轻松恢复之前某个版本。但是,VS Code默认是不支持local history的,所以,仅凭Ctrl+z撤销操作时不行的。何况,撤销操作是把前面步骤所有的操作都撤销了,其中有很多是我们不需要的。

安装这款插件之后在侧边栏会出现LOCAL HISTORY的字样,每当我们保存更改时,它都会备份一份历史文件,当我们需要恢复之前版本时,只需要点击一下对应的文件即可。此外,它还会在编辑框显示对比详情,能够让你对修改位置一目了然。

}

我要回帖

更多关于 算法一般应该具有的基本特征 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信