如何在vscode當中配置leetcode插件?

點擊上方藍字,和我一塊兒學技術前端




你們好,今早在B站看到up主的vscode裏藏了leetcode插件,這才知道原來還有這款神器。可是沒想到在用的時候遇到了一些麻煩,花了一點時間才解決。因此寫這篇文章除了給你們安利這個好用的插件以外,也是爲了幫助更多的同窗避免踩坑。linux


簡介vscode


vscode在工業界鼎鼎大名,被譽爲微軟少有的拿得出手的精品(逃)。本來是不想過多贅述的,可是鑑於許多粉絲仍是正在上學的萌新,因此花點筆墨簡單介紹一下。git

vscode是微軟開發的編輯器,嚴格提及來它並非一個IDE,只是一個編輯器。可是因爲它支持嵌入各大語言的編譯器,而且對於terminal的支持也很是出色,因此已經近乎於一個支持衆多語言,擁有許多特性的IDE了。根據2019年stackflow最新的調研,vscode已經成爲最受開發者歡迎的開發環境了。在當下的互聯網公司當中,能夠說是不管先後端或者是其餘的開發崗位都有大量的工程師使用它。它免費輕量級、跨平臺、而且有着大量好用的插件做爲支持。程序員

因此不論你用的是Windows,linux仍是Mac,均可以很是方便地使用它。github

強調一下,vscode支持各大語言,基本上咱們能想到的,咱們據說過的沒有據說過的,它都支持。我剛纔特地去看了一下,連上古語言Pascal都支持,因此裝就完事了。對學生黨多說一句,不要聽什麼老師或者是某本教材的忽悠,去裝什麼visual studio或者是dev C++了,已通過時了。web


vscode的插件


vscode之因此強大很大的緣由是由於擁抱開源,咱們每一個人均可覺得它開發插件。也正是由於這點,vscode當中有着很是很是多的插件,不管咱們想獲得的仍是想不到的,能夠說是應有盡有。面試

咱們點擊左側邊欄的extensions打開插件市場,咱們能夠當中進行搜索。算法

好比你想要寫Python,那麼咱們就輸入Python,排名第一的就是Python的解釋器:npm

而且右側還會有詳細的說明和介紹文檔,介紹這款插件的使用方法或者是配置方法,以及咱們能夠本身根據須要設置的配置。後端

換成C++也是同樣:

這些說明其實對應github倉庫當中的一個repo,因此當咱們點擊其中的一些連接會跳轉到github當中。另外,若是咱們本身開發了相應的插件,一樣也能夠註冊到vscode當中來,給其餘人使用。

這也是開源精神所在,即便微軟家大業大,僅僅靠它一家公司的努力,是不可能同時支持和維護這麼多功能和插件的。

另外,須要注意的是大部分插件是安裝好了能夠直接使用的,可是也有些插件是須要配置的,這須要咱們在安裝和使用以前詳細閱讀文檔。


leetcode插件


熟悉了vscode的插件以後,咱們開始進入本文的正題。和預料的同樣,咱們在插件市場當中搜索leetcode,而後安裝下載量最高的那個便可。

咱們安裝以後,按住shift + ctrl(command) + p,打開插件搜索欄。輸入leetcode,選擇第一個sign in,而後輸入帳號和密碼便可。

可是你會發現登錄失敗了

怎麼回事,爲何失敗了,難道是記錯密碼了嗎?

因而你打開leetcode的網站又嘗試了一下,發現密碼沒有記錯,網頁能夠登錄。

咱們打開官網,會發現官方已經知道登錄失敗的問題了,這是因爲leetcode官網升級了登錄機制致使的。

可是leetcode只升級了國際版,對於國內的版本尚未升級,因此若是你使用的是國內的leetcode帳號,那麼咱們只須要更換leetcode版本便可。更換的方式也很簡單,點擊上方地球形狀的按鈕進行選擇便可:

可是,我我的更推薦使用國際版,由於英文的題目描述會更加清楚,而且題目的更新也會更加及時。何況之後說不許中文版的leetcode也會升級登錄機制,到時候仍是會面臨沒法登錄的問題。

很遺憾的是,對於沒法登錄這個問題,官方很坦率地認可了對於這個問題沒有特別好的解決方法,只能使用cookie來繞開


cookie登錄


cookie在網站當中常用,咱們能夠簡單地將它認爲是一個標識身份的令牌或者說證書

咱們都知道,如今的網站每每有自動登陸機制。由於咱們每打開一次都要用戶輸入一次帳號密碼實在是太反人類了,而且有時候咱們打開多個相同網站中的不一樣站點,也會想要保持登陸的狀態,而不是再輸入帳號密碼。cookie正是基於整個目的誕生的。

cookie的原理也很簡單,咱們在登陸網站成功以後,網站的服務器會根據咱們的帳號id或者是其餘信息使用加密算法生成一串密文。而且將這串密文發送給瀏覽器,瀏覽器會將這串密文存儲起來,這樣下次瀏覽器在訪問網站的時候,只須要攜帶上這串密文,網站拿到密文進行解密以後就能識別出這是哪個用戶,自動設置成已經登陸的狀態,而且返回對應的數據。

所以cookie數據很是重要,它關乎咱們許多帳號的安全。若是咱們的cookie被黑客獲取,咱們的帳號都會面臨被盜的風險。因爲對稱加密算法幾乎不可攻破,因此目前許多針對瀏覽器帳戶的攻擊手段都和cookie有關。

我猜想登陸問題出現的緣由應該是leetcode官方人爲限制了第三方插件經過帳號密碼代理登陸,因此解決方法很簡單,就是咱們使用cookie來進行模擬登陸


前期準備


因爲leetcode插件底層是使用的leetcode-cli命令行工具,因此咱們須要如今本地保證咱們的命令行工具的版本正確。

首先,咱們須要安裝Node.js 8以上的版本,關於Node.js的安裝方法網上隨便就能搜到,安裝也很簡單,這裏就不贅述了。

接着,咱們經過npm工具安裝最新版本的leetcode-cli:

# to remove the old version
npm uninstall -g leetcode-cli
# to install the up-to-date version(2.6.17+)
npm install -g leetcode-tools/leetcode-cli


操做流程


首先,咱們須要經過瀏覽器獲取咱們帳號的cookie。下面以Google Chrome瀏覽器舉例。

咱們先打開leetcode用咱們本身的帳號和密碼登陸,而後右擊選擇inspect:

接着選擇Network下的XHR:

而後咱們點擊網站導航欄中的problems:

這時候右邊會顯示出前端網頁跳轉的請求信息,咱們找到其中一個名叫all的請求,選擇Headers,往下拉就能找到cookie:

咱們把這一串字符串複製下來。

從新打開vscode,打開leetcode插件,選擇sign in,這一次在選擇登陸方式的時候咱們選擇使用cookie登陸

而後輸入帳號,粘貼進咱們剛纔複製下來的cookie便可。

順利的話,看到下圖紅框當中的邊欄出現,就說明咱們已經成功登陸了。



leetcode插件使用


leetcode的使用很簡單,和網頁版差距不大,咱們點開all能夠看到全部的問題,咱們點擊問題的標題會自動爲咱們加載題目的詳細信息,已經經過的問題會打上綠色的勾。

咱們要作題的話就右擊選擇Show Problem

以後會彈出語言讓咱們選擇,咱們就選擇咱們最經常使用的語言就好。好比我最近用Python作題,就選擇Python3:

以後選擇Just Open The problem file

vscode會自動爲咱們打開一個分屏。咱們就可以一邊看問題一邊寫代碼了,不得不說實在是很是方便。



leetcode配置


最後簡單講一下leetcode插件的一些配置。

leetcode這個插件當中的配置還蠻多的,可是我我的以爲最主要的是其中的兩個。一個是配置咱們每一個問題代碼存放的文件路徑,方便之後咱們找到這些寫好的代碼。

這個配置名字叫作leetcode.workspaceFolder,默認的路徑是$HOME/.leetcode。這裏的$HOME是你係統的環境變量,不一樣的系統這個變量指定的位置不同。

咱們能夠打開終端輸入

echo $HOME

查看一下咱們當前的$HOME目錄指向哪裏,固然咱們也能夠本身修改這個配置。咱們打開vscode的配置文件,搜索leetcode.workspaceFolder,就能夠找到vscode當中的配置,咱們修改咱們想要的path便可。

另外一個配置是編輯器的快捷方式,咱們仔細觀察會發現咱們打開的leetcode py文件下面會有兩個按鈕。我這張圖裏是三個,由於我設置過。

這些按鈕是能夠點擊的,它們都有具體的功能。好比Submit是提交當前的code到leetcode網站,幫咱們提交代碼。Test是執行樣例,看看樣例是否可以經過。除了這兩個以外還有兩個,一個叫作Solution,能夠查看當前最高讚的代碼。另外一個是Description,是顯示問題描述。

咱們能夠在leetcode.editor.shortcuts配置當中進行修改:



總結


有了這個插件以後,咱們就能夠擺脫使用網頁端來進行刷題了。不得不說實在是很是方便,另外對於咱們程序員來講,我以爲leetcode當中的許多問題,咱們是必定會遇到的。問題僅僅是你遇到它的時候是在刷題仍是面試

今天是週末,祝願你們刷題愉快,點個贊再走吧。

本文分享自微信公衆號 - TechFlow(techflow2019)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索