您的位置: 首頁(yè) >互聯(lián)網(wǎng) >

設(shè)置iPad進(jìn)行編碼是我作為計(jì)算機(jī)用戶(hù)的最大壯舉

2019-05-15 17:51:58 編輯: 來(lái)源:
導(dǎo)讀 幾個(gè)月前,我詳細(xì)介紹了設(shè)置Pixelbook進(jìn)行編碼的過(guò)程。這不容易,簡(jiǎn)單或直截了當(dāng),但它最終有效:我擁有Linux的所有功能和靈活性,訪問(wèn)我最

幾個(gè)月前,我詳細(xì)介紹了設(shè)置Pixelbook進(jìn)行編碼的過(guò)程。這不容易,簡(jiǎn)單或直截了當(dāng),但它最終有效:我擁有Linux的所有功能和靈活性,訪問(wèn)我最喜歡的代碼編輯器(VS Code),當(dāng)然還有Chromebook的光滑網(wǎng)頁(yè)瀏覽體驗(yàn)眾所周知的。

我試圖建立一個(gè)iPad進(jìn)行編碼。我悲慘地失敗了。我喜歡用iPad寫(xiě)作和其他創(chuàng)意作品。它超級(jí)便攜,具有出色的電池壽命,出色的屏幕,有限的多任務(wù)使我保持專(zhuān)注。不幸的是,它對(duì)于復(fù)雜的任務(wù)來(lái)說(shuō)非常糟糕,并且故意在軟件開(kāi)發(fā)方面癱瘓。

但是我現(xiàn)在變老了,并且在整個(gè)星期六花了我的頭撞墻后,我很高興地報(bào)告說(shuō)我可以用799美元的平板電腦來(lái)編寫(xiě)軟件。我是否真的會(huì)將它用于此目的?也許!但我們會(huì)做到這一點(diǎn)。

如果您也希望在iPad上編碼,請(qǐng)隨意跟隨我的腳步。我不能向你保證這是一個(gè)值得去的目的地,但我在途中學(xué)到了很多東西。

眾所周知,Apple害怕任何人都可能在其原始的iOS設(shè)備上運(yùn)行任意代碼。這有點(diǎn)道理:iOS和App Store的限制使得多年前的iPad比同樣年齡的MacBook Pro更具響應(yīng)性和無(wú)懈可擊。

但這使得開(kāi)發(fā)軟件幾乎不可能。具有諷刺意味的是,iPad在很多方面都非常適合創(chuàng)作者,如繪畫(huà),設(shè)計(jì)和音樂(lè)。引擎蓋下是相同的Unix內(nèi)核,它使macOS非常適合程序員。

無(wú)論如何,你知道這一切。

與Pixelbook不同,我想要一個(gè)基本可與我的Mac設(shè)置相媲美的完整Rust開(kāi)發(fā)環(huán)境,我決定在我的iPad上進(jìn)行一些基于JavaScript的Web開(kāi)發(fā)。

我知道要去的地方:CodeSandbox。這是一個(gè)網(wǎng)站,一切都在瀏覽器中運(yùn)行。因此,iPad無(wú)法阻止我實(shí)現(xiàn)用JavaScript創(chuàng)建“計(jì)算器2:計(jì)算器續(xù)集”網(wǎng)絡(luò)應(yīng)用程序的夢(mèng)想。

CodeSandbox允許您使用任意NPM包,它有一個(gè)基于VS Code自己的編輯器的代碼編輯器。因此,只要您堅(jiān)持使用JavaScript世界,它就像傳統(tǒng)的基于桌面的Web開(kāi)發(fā)設(shè)置一樣強(qiáng)大。CodeSandbox還打破了配置文件的一些粗糙邊緣,并且有許多使用各種技術(shù)構(gòu)建的預(yù)制項(xiàng)目(React,Vue,Redux,甚至像Hyperapp這樣的奇特框架),這使得很容易開(kāi)始使用超級(jí)復(fù)雜的構(gòu)建現(xiàn)代Web開(kāi)發(fā)似乎需要的鏈。

我很興奮地看到CodeSandbox有一個(gè)Vim模式。Vim鍵綁定是我瀏覽文本的首選方式,在沒(méi)有鼠標(biāo)幫助的iPad上尤為重要。移動(dòng)光標(biāo),突出顯示文本,刪除文字或線條,移動(dòng)線條以及在文件中跳遠(yuǎn)距離都需要在Vim中進(jìn)行幾次擊鍵。與iPad的替代品相比:用笨拙的手指在屏幕上戳了幾秒鐘,希望iOS能夠辨別出你的意圖。

基本上,一切都很順利。CodeSandbox就是我所需要的,我的iPad突然變成了一個(gè)非常有用的webdev盒子 - 至少是為了構(gòu)建我所傾向的小型實(shí)驗(yàn)。

除了有一個(gè)問(wèn)題:iPad沒(méi)有Escape鍵。

在Vim中,有不同的“模式”。在默認(rèn)模式下,您可以使用鍵盤(pán)在文檔中導(dǎo)航。有選擇模式,您可以使用相同的導(dǎo)航鍵選擇文本。而且,重要的是,有一個(gè)插入模式,您可以使用鍵盤(pán)進(jìn)行鍵入。由于您需要退出插入模式以再次移動(dòng)光標(biāo),因此需要某種命令才能退出插入模式。默認(rèn)情況下,該命令連接到Escape鍵。

許多Vim用戶(hù)(比如我自己)會(huì)映射一個(gè)像“jj”這樣的花哨的鍵組合,以便讓退出的插入模式更容易,但CodeSandbox實(shí)際上并不是Vim。它只是模仿Vim的一些默認(rèn)鍵綁定。所以我需要一個(gè)Escape鍵。iPad甚至不知道這意味著什么。

我是認(rèn)真的!起初,我認(rèn)為這只是蘋(píng)果公司自己的智能鍵盤(pán)蓋的問(wèn)題,它沒(méi)有功能行和Escape鍵。所以我拿出一個(gè)普通的藍(lán)牙鍵盤(pán)并將它連接到iPad上。我卡在逃生鑰匙上......沒(méi)什么。在iOS的世界里,沒(méi)有逃脫。

我在絕望的狀態(tài)下瀏覽StackExchange和各種GitHub問(wèn)題。是的,有一些方法可以使用“Ctrl + [,” 模擬Escape按鍵,但在這種情況下我沒(méi)有任何幫助。在我的余生中,我陷入了插入模式。

CodeSandbox,你帶我這么近!

實(shí)際上,基于CodeSandbox的快速迭代,如果他們?cè)诓痪玫膶?lái)解決了這個(gè)問(wèn)題我也不會(huì)感到驚訝。

但與此同時(shí):男孩要做什么?

我第一次嘗試設(shè)置iPad進(jìn)行編碼時(shí),我自然而然地直接進(jìn)入了云端。但云并不是一個(gè)神奇的地方,所有的夢(mèng)想都會(huì)成真。在Digital Ocean或Google Cloud上設(shè)置devbox需要一些Linux和SSH知識(shí),并且當(dāng)您的命令行技能失敗時(shí),沒(méi)有GUI Linux界面可供使用。

為什么以前這么難?

奇怪的是,我上次嘗試云設(shè)備設(shè)置時(shí)散落的知識(shí)碎片就是我需要快速完成所有工作。我在Digital Ocean上支付了5美元的基本款,在其上安裝了一個(gè)干凈的Ubuntu,并提供了我在Panic的Prompt應(yīng)用程序中生成的SSH密鑰,這是一個(gè)適用于iOS的SSH終端模擬器。為什么以前這么難?

在SSH進(jìn)入我的數(shù)字海洋盒后,我開(kāi)始添加我需要的工具。我安裝了Neovim(一個(gè)現(xiàn)代的Vim替代品),并在GitHub上為Neovim找到了某人的.config文件并將其復(fù)制。然后我安裝了nodejs,yarn,npm,parcel,rust,gcc ...我渴望的所有好東西。因?yàn)閂S Code的“語(yǔ)言服務(wù)器”方面是開(kāi)源的,所以我可以在編寫(xiě)Neovim時(shí)得到很多我依賴(lài)的提示和錯(cuò)誤,即使它缺少VS Code的所有GUI鈴聲和口哨聲。

除了自由應(yīng)用sudo apt-get install,復(fù)制和粘貼shell腳本以及仔細(xì)閱讀錯(cuò)誤消息之外,我很難描述我是如何完成所有這些事情的。大多數(shù)情況下,命令行中只有多年的反復(fù)試驗(yàn)。如果你遇到問(wèn)題,我想DM我,我會(huì)盡力幫助你。你試過(guò)修改$ PATH嗎?

所以,無(wú)論如何,現(xiàn)在我可以用JavaScript編寫(xiě)一個(gè)Web應(yīng)用程序,從我的Digital Ocean框中提供它,并在Safari中預(yù)覽我的工作(通過(guò)實(shí)時(shí)重新加載,感謝Parcel執(zhí)行的一些魔術(shù))。我甚至可以拆分屏幕終端和Safari,真正開(kāi)始工作。

但很快,我感到沮喪:我的工作“編碼”的一小部分實(shí)際上是打字代碼。我花了大部分時(shí)間閱讀文檔和其他人的代碼,試圖弄清楚到底是怎么回事。瀏覽StackOverflow幾分鐘后,我收到來(lái)自Prompt的通知,警告我我的SSH會(huì)話(huà)即將斷開(kāi),因?yàn)椴换顒?dòng)。

iOS是如此美觀和響應(yīng)的全部原因是因?yàn)樗鼛缀鯖](méi)有多任務(wù)處理,除非你一次使用多個(gè)音頻應(yīng)用程序。提示盡力保持活力,但iOS總是最終殺死它。

所以,我用Google搜索解決方案并發(fā)現(xiàn)了Mosh。基本上,Mosh是用于從間歇連接使用終端的UDP協(xié)議。你像往常一樣通過(guò)SSH連接,但是那個(gè)連接被傳遞給Mosh,以便在停機(jī)期間保持“活著”狀態(tài)。提示不支持Mosh,所以我為另一個(gè)名為Blink的終端模擬器應(yīng)用程序另外支付了20美元,然后設(shè)置了Mosh。在我的Ubuntu盒子上運(yùn)行Mosh服務(wù)器并將我的登錄詳細(xì)信息正確輸入Blink需要一些試驗(yàn)和錯(cuò)誤,但是一旦我開(kāi)始工作,它就會(huì)很好用。

我可以離開(kāi)終端好幾天了,一旦我打開(kāi)Blink,我就會(huì)在上次打開(kāi)所有會(huì)話(huà)。對(duì)于命令行戰(zhàn)士來(lái)說(shuō),這絕非易事。他們知道所有關(guān)于“重新連接”會(huì)議或他們所做的事情。但對(duì)我來(lái)說(shuō),這是一項(xiàng)巨大的成就。

事實(shí)上,在某些方面,我更喜歡我的iPad / Blink / Digital Ocean設(shè)置,以便在我的Mac上進(jìn)行編碼。我不能做我的Mac所做的一切 - 任何涉及窗口或圖形的東西,例如,在網(wǎng)絡(luò)瀏覽器之外,實(shí)際上是不可能的 - 但我很高興知道我并沒(méi)有弄亂我的各種各樣的Mac奇怪的命令行軟件我從互聯(lián)網(wǎng)上安裝。如果我的設(shè)置無(wú)法修復(fù),只需點(diǎn)擊幾下即可擦除我的Ubuntu盒并重新開(kāi)始。

此外,雖然我的數(shù)字海洋盒比我的MacBook Pro慢很多,但它具有超快的互聯(lián)網(wǎng)連接。由于其最小的延遲和巨大的互聯(lián)網(wǎng)管道,我想要git clone或npm install的任何東西在這個(gè)云盒上感覺(jué)更加快捷。

哦,如果你想知道:Blink支持“Ctrl + [”命令來(lái)模擬轉(zhuǎn)義。你也可以將你的大寫(xiě)鎖定鍵映射到逃脫,如果你想要真的瘋了(我傳統(tǒng)上將大寫(xiě)鎖定映射到Ctrl,這也是Blink支持)。但是,幸運(yùn)的是,我的Neovim配置映射“jj”在插入模式下逃脫,所以我在那個(gè)方面是金色的。

我當(dāng)前的設(shè)置真的只有一個(gè)問(wèn)題:我在JavaScript上很糟糕,因此我第一次寫(xiě)的東西都沒(méi)有,我在Mobile Safari中看不到任何控制臺(tái)錯(cuò)誤消息,因?yàn)樗菋雰旱臍埲睘g覽器。

CodeSandbox.io包含自己的控制臺(tái)界面。

我想我在這個(gè)新的編碼設(shè)置上的第一份工作是為CodeSandbox寫(xiě)一個(gè)pull請(qǐng)求來(lái)支持“jj”轉(zhuǎn)義方法。

如果只有我更好的JavaScript!

這是我發(fā)現(xiàn)自己真正的泡菜。


免責(zé)聲明:本文由用戶(hù)上傳,如有侵權(quán)請(qǐng)聯(lián)系刪除!

最新文章

精彩推薦

圖文推薦

點(diǎn)擊排行

2016-2022 All Rights Reserved.平安財(cái)經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ280 715 8082   備案號(hào):閩ICP備19027007號(hào)-6

本站除標(biāo)明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。