2016-2022 All Rights Reserved.平安財(cái)經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ280 715 8082 備案號:閩ICP備19027007號-6
本站除標(biāo)明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。
幾個(gè)月前,我詳細(xì)介紹了設(shè)置Pixelbook進(jìn)行編碼的過程。這不容易,簡單或直截了當(dāng),但它最終有效:我擁有Linux的所有功能和靈活性,訪問我最喜歡的代碼編輯器(VS Code),當(dāng)然還有Chromebook的光滑網(wǎng)頁瀏覽體驗(yàn)眾所周知的。
我試圖建立一個(gè)iPad進(jìn)行編碼。我悲慘地失敗了。我喜歡用iPad寫作和其他創(chuàng)意作品。它超級便攜,具有出色的電池壽命,出色的屏幕,有限的多任務(wù)使我保持專注。不幸的是,它對于復(fù)雜的任務(wù)來說非常糟糕,并且故意在軟件開發(fā)方面癱瘓。
但是我現(xiàn)在變老了,并且在整個(gè)星期六花了我的頭撞墻后,我很高興地報(bào)告說我可以用799美元的平板電腦來編寫軟件。我是否真的會(huì)將它用于此目的?也許!但我們會(huì)做到這一點(diǎn)。
如果您也希望在iPad上編碼,請隨意跟隨我的腳步。我不能向你保證這是一個(gè)值得去的目的地,但我在途中學(xué)到了很多東西。
眾所周知,Apple害怕任何人都可能在其原始的iOS設(shè)備上運(yùn)行任意代碼。這有點(diǎn)道理:iOS和App Store的限制使得多年前的iPad比同樣年齡的MacBook Pro更具響應(yīng)性和無懈可擊。
但這使得開發(fā)軟件幾乎不可能。具有諷刺意味的是,iPad在很多方面都非常適合創(chuàng)作者,如繪畫,設(shè)計(jì)和音樂。引擎蓋下是相同的Unix內(nèi)核,它使macOS非常適合程序員。
無論如何,你知道這一切。
與Pixelbook不同,我想要一個(gè)基本可與我的Mac設(shè)置相媲美的完整Rust開發(fā)環(huán)境,我決定在我的iPad上進(jìn)行一些基于JavaScript的Web開發(fā)。
我知道要去的地方:CodeSandbox。這是一個(gè)網(wǎng)站,一切都在瀏覽器中運(yùn)行。因此,iPad無法阻止我實(shí)現(xiàn)用JavaScript創(chuàng)建“計(jì)算器2:計(jì)算器續(xù)集”網(wǎng)絡(luò)應(yīng)用程序的夢想。
CodeSandbox允許您使用任意NPM包,它有一個(gè)基于VS Code自己的編輯器的代碼編輯器。因此,只要您堅(jiān)持使用JavaScript世界,它就像傳統(tǒng)的基于桌面的Web開發(fā)設(shè)置一樣強(qiáng)大。CodeSandbox還打破了配置文件的一些粗糙邊緣,并且有許多使用各種技術(shù)構(gòu)建的預(yù)制項(xiàng)目(React,Vue,Redux,甚至像Hyperapp這樣的奇特框架),這使得很容易開始使用超級復(fù)雜的構(gòu)建現(xiàn)代Web開發(fā)似乎需要的鏈。
我很興奮地看到CodeSandbox有一個(gè)Vim模式。Vim鍵綁定是我瀏覽文本的首選方式,在沒有鼠標(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è)問題:iPad沒有Escape鍵。
在Vim中,有不同的“模式”。在默認(rèn)模式下,您可以使用鍵盤在文檔中導(dǎo)航。有選擇模式,您可以使用相同的導(dǎo)航鍵選擇文本。而且,重要的是,有一個(gè)插入模式,您可以使用鍵盤進(jìn)行鍵入。由于您需要退出插入模式以再次移動(dòng)光標(biāo),因此需要某種命令才能退出插入模式。默認(rèn)情況下,該命令連接到Escape鍵。
許多Vim用戶(比如我自己)會(huì)映射一個(gè)像“jj”這樣的花哨的鍵組合,以便讓退出的插入模式更容易,但CodeSandbox實(shí)際上并不是Vim。它只是模仿Vim的一些默認(rèn)鍵綁定。所以我需要一個(gè)Escape鍵。iPad甚至不知道這意味著什么。
我是認(rèn)真的!起初,我認(rèn)為這只是蘋果公司自己的智能鍵盤蓋的問題,它沒有功能行和Escape鍵。所以我拿出一個(gè)普通的藍(lán)牙鍵盤并將它連接到iPad上。我卡在逃生鑰匙上......沒什么。在iOS的世界里,沒有逃脫。
我在絕望的狀態(tài)下瀏覽StackExchange和各種GitHub問題。是的,有一些方法可以使用“Ctrl + [,” 模擬Escape按鍵,但在這種情況下我沒有任何幫助。在我的余生中,我陷入了插入模式。
CodeSandbox,你帶我這么近!
實(shí)際上,基于CodeSandbox的快速迭代,如果他們在不久的將來解決了這個(gè)問題我也不會(huì)感到驚訝。
但與此同時(shí):男孩要做什么?
我第一次嘗試設(shè)置iPad進(jìn)行編碼時(shí),我自然而然地直接進(jìn)入了云端。但云并不是一個(gè)神奇的地方,所有的夢想都會(huì)成真。在Digital Ocean或Google Cloud上設(shè)置devbox需要一些Linux和SSH知識,并且當(dāng)您的命令行技能失敗時(shí),沒有GUI Linux界面可供使用。
為什么以前這么難?
奇怪的是,我上次嘗試云設(shè)備設(shè)置時(shí)散落的知識碎片就是我需要快速完成所有工作。我在Digital Ocean上支付了5美元的基本款,在其上安裝了一個(gè)干凈的Ubuntu,并提供了我在Panic的Prompt應(yīng)用程序中生成的SSH密鑰,這是一個(gè)適用于iOS的SSH終端模擬器。為什么以前這么難?
在SSH進(jìn)入我的數(shù)字海洋盒后,我開始添加我需要的工具。我安裝了Neovim(一個(gè)現(xiàn)代的Vim替代品),并在GitHub上為Neovim找到了某人的.config文件并將其復(fù)制。然后我安裝了nodejs,yarn,npm,parcel,rust,gcc ...我渴望的所有好東西。因?yàn)閂S Code的“語言服務(wù)器”方面是開源的,所以我可以在編寫Neovim時(shí)得到很多我依賴的提示和錯(cuò)誤,即使它缺少VS Code的所有GUI鈴聲和口哨聲。
除了自由應(yīng)用sudo apt-get install,復(fù)制和粘貼shell腳本以及仔細(xì)閱讀錯(cuò)誤消息之外,我很難描述我是如何完成所有這些事情的。大多數(shù)情況下,命令行中只有多年的反復(fù)試驗(yàn)。如果你遇到問題,我想DM我,我會(huì)盡力幫助你。你試過修改$ PATH嗎?
所以,無論如何,現(xiàn)在我可以用JavaScript編寫一個(gè)Web應(yīng)用程序,從我的Digital Ocean框中提供它,并在Safari中預(yù)覽我的工作(通過實(shí)時(shí)重新加載,感謝Parcel執(zhí)行的一些魔術(shù))。我甚至可以拆分屏幕終端和Safari,真正開始工作。
但很快,我感到沮喪:我的工作“編碼”的一小部分實(shí)際上是打字代碼。我花了大部分時(shí)間閱讀文檔和其他人的代碼,試圖弄清楚到底是怎么回事。瀏覽StackOverflow幾分鐘后,我收到來自Prompt的通知,警告我我的SSH會(huì)話即將斷開,因?yàn)椴换顒?dòng)。
iOS是如此美觀和響應(yīng)的全部原因是因?yàn)樗鼛缀鯖]有多任務(wù)處理,除非你一次使用多個(gè)音頻應(yīng)用程序。提示盡力保持活力,但iOS總是最終殺死它。
所以,我用Google搜索解決方案并發(fā)現(xiàn)了Mosh?;旧希琈osh是用于從間歇連接使用終端的UDP協(xié)議。你像往常一樣通過SSH連接,但是那個(gè)連接被傳遞給Mosh,以便在停機(jī)期間保持“活著”狀態(tài)。提示不支持Mosh,所以我為另一個(gè)名為Blink的終端模擬器應(yīng)用程序另外支付了20美元,然后設(shè)置了Mosh。在我的Ubuntu盒子上運(yùn)行Mosh服務(wù)器并將我的登錄詳細(xì)信息正確輸入Blink需要一些試驗(yàn)和錯(cuò)誤,但是一旦我開始工作,它就會(huì)很好用。
我可以離開終端好幾天了,一旦我打開Blink,我就會(huì)在上次打開所有會(huì)話。對于命令行戰(zhàn)士來說,這絕非易事。他們知道所有關(guān)于“重新連接”會(huì)議或他們所做的事情。但對我來說,這是一項(xiàng)巨大的成就。
事實(shí)上,在某些方面,我更喜歡我的iPad / Blink / Digital Ocean設(shè)置,以便在我的Mac上進(jìn)行編碼。我不能做我的Mac所做的一切 - 任何涉及窗口或圖形的東西,例如,在網(wǎng)絡(luò)瀏覽器之外,實(shí)際上是不可能的 - 但我很高興知道我并沒有弄亂我的各種各樣的Mac奇怪的命令行軟件我從互聯(lián)網(wǎng)上安裝。如果我的設(shè)置無法修復(fù),只需點(diǎn)擊幾下即可擦除我的Ubuntu盒并重新開始。
此外,雖然我的數(shù)字海洋盒比我的MacBook Pro慢很多,但它具有超快的互聯(lián)網(wǎng)連接。由于其最小的延遲和巨大的互聯(lián)網(wǎng)管道,我想要git clone或npm install的任何東西在這個(gè)云盒上感覺更加快捷。
哦,如果你想知道:Blink支持“Ctrl + [”命令來模擬轉(zhuǎn)義。你也可以將你的大寫鎖定鍵映射到逃脫,如果你想要真的瘋了(我傳統(tǒng)上將大寫鎖定映射到Ctrl,這也是Blink支持)。但是,幸運(yùn)的是,我的Neovim配置映射“jj”在插入模式下逃脫,所以我在那個(gè)方面是金色的。
我當(dāng)前的設(shè)置真的只有一個(gè)問題:我在JavaScript上很糟糕,因此我第一次寫的東西都沒有,我在Mobile Safari中看不到任何控制臺錯(cuò)誤消息,因?yàn)樗菋雰旱臍埲睘g覽器。
CodeSandbox.io包含自己的控制臺界面。
我想我在這個(gè)新的編碼設(shè)置上的第一份工作是為CodeSandbox寫一個(gè)pull請求來支持“jj”轉(zhuǎn)義方法。
如果只有我更好的JavaScript!
這是我發(fā)現(xiàn)自己真正的泡菜。
2016-2022 All Rights Reserved.平安財(cái)經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ280 715 8082 備案號:閩ICP備19027007號-6
本站除標(biāo)明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。