雖然這篇vim選取多行鄉民發文沒有被收入到精華區:在vim選取多行這個話題中,我們另外找到其它相關的精選爆讚文章
在 vim選取多行產品中有4篇Facebook貼文,粉絲數超過5,012的網紅卡斯伯,也在其Facebook貼文中提到, 最近在練習 WebStorm / Tennis 的速度(目前 10 分半) 想使用 “邪教觸控板” 超越 “傳說 vim” 不過 Vim 真的不是我的愛,加上 Mac 鍵盤搭配 Vim 真的很痛苦 尤其是那難用的 ESC 及 Touch Bar 後來決定使用觸控板搭配 Web Storm 特性 試...
vim選取多行 在 卡斯伯 Facebook 的最讚貼文
最近在練習 WebStorm / Tennis 的速度(目前 10 分半)
想使用 “邪教觸控板” 超越 “傳說 vim”
不過 Vim 真的不是我的愛,加上 Mac 鍵盤搭配 Vim 真的很痛苦
尤其是那難用的 ESC 及 Touch Bar
後來決定使用觸控板搭配 Web Storm 特性
試圖將速度有效的提升
遇到的問題及解決辦法:
1. 滑鼠 / 觸控板會慢,是因為需要找游標以及需要瞄準
但純粹游標瞄準絕對不是問題
想想各位都可以在 CS 等射擊遊戲中
使用狙擊槍 0.5 秒甩槍爆頭
沒道理這個技能在開發中無法運用
問題在於預設情況,打字狀態下游標是會被隱藏的(Mac 是如此
遊戲中,游標是穩定在畫面的中央,所以反應才能那麼快
只要能夠穩定的了解目前游標位置
自然就能加速使用觸控板 / 滑鼠開發
(因此我在游標上加了O,永遠掌握它的位置)
2. 自動格式化、分號、存檔、測試等重複流程
在 極速開發 課程中介紹到 Vim 指令搭配 Web Storm
使用組合鍵的形式呼叫 Web Storm 的多個方法
可以有效使用少數幾個按鈕就執行多個行為
如果是沒有使用 Vim 則可以使用 Macro
類似錄製的方式,將特定的 Action 記錄起來
再透過熱鍵的方式觸發
格式化、存檔、測試一次搞定
3. 複製片段太慢
Vim 中,複製技巧是一個檻
用滑鼠 / 鍵盤開發也是如此啊!
選取、複製、貼上這個流程中都會耗去不少時間
加上貼上後還需要移動到指定位置
所需的鍵盤指令都需要不少
因此我再次使用 Web Storm 的 "Macro" 功能
直接複製整個區塊(只要移動至區塊的最前方,最後複製該區塊)
接下來在使用游標移動至要編輯的區塊即可
移動的過程中還可以使用滾輪調整畫面位置
過程中可大幅降低輸入錯誤指令問題
---
同事們也說到:你這個研究精神,Vim 早練起來了吧.
===
也感謝這門課,讓我重新體悟許多事情
- 效率不好是「工具不熟悉、方法不對、壞習慣不改」所造成的
- 重複的訓練可以有效加速對於工具、知識的掌握
- 觀看錄影知道自己還有哪邊可以優化,每次調整都可以提升數分鐘的效率
六角接下來也討論直播課程要導入相關的概念
我也是雙手贊成,這真的可以強化許多知識及工具掌握能力
#目標十分內
vim選取多行 在 91 敏捷開發之路 Facebook 的最佳解答
可能有些人不知道,JetBrains IDE/ReSharper 有個 `Extend Selection` 的功能,可以快速的幫你從游標的位置開始往外擴展選取。
(ReSharper 預設 shortcut 是 Ctrl+W,可能會跟 Visual Studio 原生的 Ctrl+W 功能相衝,跳衝突時記得選 ReSharper)
知道用 Extend Selection 往外選的朋友,還有一些人不知道,其實可以用 `Shrink Selection` 縮回來,以免你不小心選太快,多出去了一層。(預設的 shortcut 是 Shift+Ctrl+W)
在 vim 裡面用 vi} 可以選 {} 內容, va} 可以選包含 {} 的內容。
那問題來了,有沒什麼簡單的方式,可以快速選起來一整個 block,例如 for 迴圈包含 for 那一行, if statement 包含 if 的那一行?
有的,ReSharper 裡面有個功能是 `Edit.ExpandSelectiontoContainingBlock`,預設是 Shift+Alt+[
可以讓你快速的往外選取到「包含這一行的 block」,例如 try{}, catch{}, while(){} 等等。
雖然 Extend Selection 也可以作到這件事,但是 Extend Selection 的顆粒度更小,如果你很明確的是要往外選取到 block 等級的範圍,用 ExpandSelectiontoContainingBlock 會快很多。
※ 但 ExpandSelectiontoContainingBlock 並沒有對應內縮的功能,所以在選時,還是要稍微看一下是不是已經到選取範圍了。
我簡單錄了一小段影片,呈現一下ExpandSelectiontoContainingBlock 與 Extend Selection 這兩者的不同。
vim選取多行 在 91 敏捷開發之路 Facebook 的最佳解答
Each line insert ' with start of line and append ' with end of line by Vim
上次【極速開發】的學員問到,如何在想要的每一行開頭與結尾都加上單引號 '
透過 vim 可以簡單地在選取的每一行,執行相同的動作。
>> 有興趣了解更多極速編輯、撰寫代碼的方式,請參考:https://dotblogs.com.tw/hatelove/2019/06/17/extreme-developing-training-202002