Uhusiano wa faili za kiotomatiki, yaani, kuchagua programu ambayo itafungua faili kutoka kwa Explorer/Finder. Na mimi kushiriki.
Matatizo kwanza. Faili zilizo na upanuzi unaohitajika mara nyingi hazifunguliwa na chochote kwa default, na ikiwa zinafunguliwa, basi kwa iTunes fulani. Chini ya Windows, vyama vinavyohitajika wakati mwingine hupotea kabisa wakati wa kufunga (au hata kufuta) programu: wakati mwingine huondoa GIMP, na faili za ico zinachukuliwa kutoka kwa kitazamaji cha kawaida cha faili hadi kwenye Matunzio ya kawaida ya Picha. Kwa nini? Kwa ajili ya nini? Haijulikani... Je, iwapo ningepata kihariri kipya au, kwa sababu mbalimbali, usakinishaji mpya? Je, ikiwa kuna zaidi ya kompyuta moja? Kwa ujumla, kubonyeza panya kwenye mazungumzo ni burudani kama hiyo.
Badala yake, nilihifadhi faili mbili kwenye Dropbox na sasa ninaweza kurudisha ulimwengu wa kompyuta kuwa wa kawaida mara moja. Na umesubiri nini kwa miaka mingi ... Ifuatayo ni mapishi ya Windows na macOS.
Windows
Katika koni ya Windows cmd.exe
hii inafanywa katika hatua mbili:
ftype my_file_txt="C:Windowsnotepad.exe" "%1"
assoc .txt=my_file_txt
Mabadiliko huanza kutumika mara moja. Licha ya ukweli kwamba chama kimesajiliwa kwa mtumiaji maalum, kwa sababu fulani amri hizi zinahitaji kuendeshwa kama msimamizi. Na usisahau kuongeza alama ya asilimia mara mbili (%%1) unapokimbia kutoka kwa faili ya popo. Ulimwengu wa kichawi wa Windows 7 Ultimate 64-bitβ¦
MacOS
Katika MacOS ni rahisi kuweka vyama kwa kutumia matumizi brew install duti
. Mfano wa matumizi:
duti -s com.apple.TextEdit .txt "editor"
Mabadiliko yanaanza mara moja, hakuna sudo inahitajika. Hapa hoja ya "com.apple.TextEdit" ni kile kinachoitwa "kitambulisho cha kifungu" cha programu tunayohitaji. Hoja ya "mhariri" ni aina ya uhusiano: "mhariri" wa kuhariri, "mtazamaji" wa kutazamwa, "wote" kwa kila kitu.
Unaweza kupata "kitambulisho cha kifungu" kama hiki: ikiwa kuna "/Applications/Sublime Text.app" ya toleo la tatu, basi kitambulisho chake cha bundle kitakuwa "com.sublimetext.3", au nyingine nyingine:
> osascript -e 'id of app "Sublime Text"'
com.sublimetext.3
Ilijaribiwa kwenye macOS Sierra.
Hati ya mwisho ya Windows (.bat)
@echo off
set XNVIEW=C:Program Files (x86)XnViewxnview.exe
set SUBLIME=C:Program FilesSublime Text 3sublime_text.exe
set FOOBAR=C:Program Files (x86)foobar2000foobar2000.exe
call :assoc_ext "%SUBLIME%" txt md js json css java sh yaml
call :assoc_ext "%XNVIEW%" png gif jpg jpeg tiff bmp ico
call :assoc_ext "%FOOBAR%" flac fla ape wav mp3 wma m4a ogg ac3
goto :eof
:assoc_ext
set EXE=%1
shift
:loop
if "%1" neq "" (
ftype my_file_%1=%EXE% "%%1"
assoc .%1=my_file_%1
shift
goto :loop
)
goto :eof
Hati ya mwisho ya macOS (.sh)
#!/bin/bash
# this allows us terminate the whole process from within a function
trap "exit 1" TERM
export TERM_PID=$$
# check `duti` installed
command -v duti >/dev/null 2>&1 ||
{ echo >&2 "duti required: brew install duti"; exit 1; }
get_bundle_id() {
osascript -e "id of app """ || kill -s TERM $TERM_PID;
}
assoc() {
bundle_id=$1; shift
role=$1; shift
while [ -n "$1" ]; do
echo "setting file assoc: $bundle_id .$1 $role"
duti -s "$bundle_id" "." "$role"
shift
done
}
SUBLIME=$(get_bundle_id "Sublime Text")
TEXT_EDIT=$(get_bundle_id "TextEdit")
MPLAYERX=$(get_bundle_id "MPlayerX")
assoc "$SUBLIME" "editor" txt md js jse json reg bat ps1 cfg sh bash yaml
assoc "$MPLAYERX" "viewer" mkv mp4 avi mov webm
assoc "$MPLAYERX" "viewer" flac fla ape wav mp3 wma m4a ogg ac3
Chanzo: mapenzi.com