不喜歡 IDE?試試看 grepgitvi
一個簡單又原始的指令碼來用 Vim 開啟你選擇的檔案。
像大多數開發者一樣,我整天都在搜尋和閱讀原始碼。就我個人而言,我從來沒有習慣過整合開發環境 (IDE),多年來,我主要使用 grep
(找到檔案),並複製/貼上檔名來開啟 Vi(m)。
最終,我寫了這個指令碼,並根據需要緩慢地對其進行了完善。
它依賴 Vim 和 rlwrap,並使用 Apache 2.0 許可證開源。要使用該指令碼,請將它放到 PATH 中,然後在文字目錄下執行:
grepgitvi <grep options> <grep/vim search pattern>
它將返回搜尋結果的編號列表,並提示你輸入結果編號並開啟 Vim。退出 Vim 後,它將再次顯示列表,直到你輸入除結果編號以外的任何內容。你也可以使用向上和向下箭頭鍵選擇一個檔案。(這對我來說)更容易找到我已經看過的結果。
與現代 IDE 甚至與 Vim 的更復雜的用法相比,它簡單而原始,但它對我有用。
指令碼
#!/bin/bash
# grepgitvi - grep source files, interactively open vim on results
# Doesnt really have to do much with git, other than ignoring .git
#
# Copyright Yedidyah Bar David 2019
#
# SPDX-License-Identifier: Apache-2.0
#
# Requires vim and rlwrap
#
# Usage: grepgitvi <grep options> <grep/vim pattern>
#
TMPD=$(mktemp -d /tmp/grepgitvi.XXXXXX)
UNCOLORED=${TMPD}/uncolored
COLORED=${TMPD}/colored
RLHIST=${TMPD}/readline-history
[ -z "${DIRS}" ] && DIRS=.
cleanup() {
rm -rf "${TMPD}"
}
trap cleanup 0
find ${DIRS} -iname .git -prune -o \! -iname "*.min.css*" -type f -print0 > ${TMPD}/allfiles
cat ${TMPD}/allfiles | xargs -0 grep --color=always -n -H "$@" > $COLORED
cat ${TMPD}/allfiles | xargs -0 grep -n -H "$@" > $UNCOLORED
max=`cat $UNCOLORED | wc -l`
pat="${@: -1}"
inp=''
while true; do
echo "============================ grep results ==============================="
cat $COLORED | nl
echo "============================ grep results ==============================="
prompt="Enter a number between 1 and $max or anything else to quit: "
inp=$(rlwrap -H $RLHIST bash -c "read -p \"$prompt\" inp; echo \$inp")
if ! echo "$inp" | grep -q '^[0-9][0-9]*$' || [ "$inp" -gt "$max" ]; then
break
fi
filename=$(cat $UNCOLORED | awk -F: "NR==$inp"' {print $1}')
linenum=$(cat $UNCOLORED | awk -F: "NR==$inp"' {print $2-1}')
vim +:"$linenum" +"norm zz" +/"${pat}" "$filename"
done
via: https://opensource.com/article/20/2/no-ide-script
作者:Yedidyah Bar David 選題:lujun9972 譯者:geekpi 校對:wxy
相關文章
- 不喜歡SAP GUI?那試試用Eclipse進行ABAP開發吧GUIEclipse
- 做程式設計師喜歡的測試人員程式設計師
- Amica:調查顯示男人不喜歡用洗衣機 女人不喜歡用iPhoneiPhone
- 原來Oracle也不喜歡“蜀黍”Oracle
- 我為什麼不喜歡框架框架
- stduino IDE試用UIIDE
- 很奇怪的jsp錯誤,大家試試看報錯不JS
- 調查:週末iPhone使用者喜歡出去玩 Android喜歡宅家看電影/看書iPhoneAndroid
- Taro UI開發小程式實現左滑喜歡右滑不喜歡效果UI
- 滲透測試必知的工具合集,你喜歡哪一個?
- JavaScript 開發者:最喜歡 React,Vue.js 比 Angular 更值得嘗試JavaScriptReactVue.jsAngular
- 日本玩家為什麼不喜歡PVP遊戲?遊戲
- 關於 Swift,我不喜歡的幾點Swift
- 我不喜歡的行為之工作版
- 推特正為蘋果iOS平臺App測試“反對”按鈕 對不喜歡的推文回覆點“反對”蘋果iOSAPP
- 抖音批量取消喜歡,批量取消抖音喜歡
- 用Flutter實現一個仿“探探”的左右滑動選擇喜歡/不喜歡的效果Flutter
- 為何我不喜歡使用儲存過程儲存過程
- 程式設計師不喜歡開放式辦公室程式設計師
- s推特正為蘋果iOS平臺App測試“反對”按鈕 對不喜歡的推文回覆點“反對”蘋果iOSAPP
- 推薦一款常用的IDE外掛,越用越喜歡IDE
- 為什麼我們喜歡看別人在遊戲裡受苦遊戲
- 如果你不喜歡瀏覽器的書籤欄瀏覽器
- 為何很多程式猿不喜歡中國式飯局?
- Java程式設計師不喜歡Golang的地方 - GavinJava程式設計師Golang
- “既要效能,也要安全”,這樣的Rust,誰不喜歡!Rust
- YouGov:68%的美國人不喜歡病毒式傳播Go
- 程式猿為什麼不招妹子喜歡的原因
- Stack Overflow 2015問卷:使用過的、喜歡的、不喜歡的和打算使用的技術
- 15 年測試經驗,卷不動了,把機會留給後浪們吧,出去讀書試試看~
- 為什麼同樣是玩遊戲,TA居然喜歡看廣告?遊戲
- 你喜歡觀看別人是如何程式設計的嗎?程式設計
- VsCode成為Python程式設計師最喜歡使用的IDEVSCodePython程式設計師IDE
- Java程式設計師最喜歡的11款免費IDE編輯器Java程式設計師IDE
- PHP爬蟲初探......先爬Learnku試試看PHP爬蟲
- 我為什麼會從程式不喜歡加{}到加{}
- 我喜歡 C++C++
- 我喜歡於一一!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!