mieki256's diary



2021/05/01() [n年前の日記]

#1 [pc] pecoを導入してみた

Ubuntu Linux 20.04 LTS上で端末を開いて、あっちこっちのディレクトリに移動するのがツライ。peco と pcd を使って楽になりたい。導入を試みた。

peco は、インクリメンタルサーチができるツール。Go言語で作られていて、1ファイルで動作する。Windows や Linux 上で使える。

_peco/peco: Simplistic interactive filtering tool

pecoをインストール。 :

Ubuntu Linux 20.04 LTS上でインストール。apt でインストールできる。ただし、apt で入る版は、最新版ではなくて、ちょっと古い版らしい。
sudo apt install peco
$ peco --version
peco version v0.5.1

最新版を使いたい場合は以下から入手。

_Releases - peco/peco

peco_linux_amd64.tar.gz をDLして、tar xvf peco_linux_amd64.tar.gz で解凍すると、中に peco という実行ファイルが入っているので、PATHが通っている場所に置く。

Windows上でインストールしたい場合は、以下を入手。
  • 64bit版 : peco_windows_amd64.zip
  • 32bit版 : peco_windows_386.zip
解凍すると peco.exe が入ってるので、PATHの通っている場所に置く。

pcdを導入。 :

pcd は、peco を利用してディレクトリ移動を楽にするバッチファイル。もしくは、bashで利用できる関数。

Windows版は以下で入手できる模様。pcd.bat を作って、PATHの通った場所に置く。

_Big Sky :: Windows のコマンドプロンプトを10倍便利にするコマンド「peco」
_Windows のコマンドプロンプトで便利なコマンド「pcd」のマルチバイト対応と空白文字対応 - hirocueki's blog

Linux版は以下で入手できる。

_pecoを使ってフィルタリング&ディレクトリ移動 - Qiita

Ubuntu Linux 20.04 LTS 上で設定してみた。

まずは、登録リストファイル、~/.peco/.peco-cd ファイルを作成しておく。
mkdir ~/.peco
touch ~/.peco/.peco-cd

~/.bashrc に以下を追記。環境変数 $EDITOR が設定されてないと pcd edit が使えないのだけど、Ubuntu Linux は標準状態だと $EDITOR が設定されてないので若干修正してある。
function pcd() {
  local PCD_FILE=$HOME/.peco/.peco-cd
  local PCD_RETURN
  if [ $1 ] && [ $1 = "add" ]; then
    if [ $2 ]; then
      ADD_DIR=$2
      if [ $2 = "." ]; then
        ADD_DIR=$(pwd)
      fi
      echo "add $ADD_DIR to $PCD_FILE"
      echo $ADD_DIR >> $PCD_FILE
    fi
  elif [ $1 ] && [ $1 = "edit" ]; then
    if [ $EDITOR ]; then
       $EDITOR $PCD_FILE
    else
       editor $PCD_FILE
    fi
  elif [ $1 ] && [ $1 = "." ]; then
    PCD_RETURN=$(/bin/ls -F | grep /$ | peco)
  else
    PCD_RETURN=$(cat $PCD_FILE | peco)
  fi

  if [ $PCD_RETURN ]; then
    cd $PCD_RETURN
  fi
}

source ~/.bashrc で反映。

使い方は以下。
  • pcd add . で、現在ディレクトリを登録リストに追加する。
  • pcd edit で、登録リストファイルを編集する。
  • pcd で、登録リストの中からインクリメンタルサーチで絞り込んでディレクトリ移動ができる。

ついでに、peco-lscd というスクリプト(?)も、~/.bashrc に追加してみた。カレントディレクトリの中から絞り込んでディレクトリ移動できる。

_pecoの基礎の基礎 - Qiita

function peco-lscd {
    local dir="$( find . -maxdepth 1 -type d | sed -e 's;\./;;' | sort | peco )"
    if [ ! -z "$dir" ] ; then
        cd "$dir"
    fi
}

これで、ディレクトリ移動が多少楽になった。ありがたや。

#2 [basic] sdlBasicを試用

Ubuntu Linux 20.04 LTS のパッケージ一覧を眺めていたら sdlbasic というパッケージが目に入った。気になったので試用してみる。

_SdlBasic - Wikipedia
_sdlBasic
_第408回 Ubuntuで現代芸術を体感する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

aptでインストール可能。
sudo apt install sdlbasic

sdlBasic で起動する。sdlbasic では起動しない。「B」が大文字な点に注意。
$ which sdlBasic
/usr/bin/sdlBasic

sdlBasic を起動すると、エディタ部分やツールバーが含まれているウインドウが開いて、ソースを打ち込める。

sdlbasic_ss01.png

F5キーで、打ち込んだソースを実行できる。

sdlBrt も一緒にインストールされる。これはランタイムらしい。
$ which sdlBrt
/usr/bin/sdlBrt

sdlBrt hoge.sdlbas でも実行できる。

バージョンを確認。
$ sdlBrt --version
sdlBasic runtime(sdlBrt) release  20070714

バージョンが 20070714 と、かなり古いのが気になる…。2012年版が存在するはずなのだけど、Ubuntu (Debian)のパッケージは古いまま更新されてないのかもしれない。

_sdlBasic - Browse /binary at SourceForge.net
_Debian -- buster の sdlbasic パッケージに関する詳細

ひとまず、以下のソースを rectangle.sdlbas として保存して、実行してみた。

_reactangle.sdlbas
width = 512
height = 512
shades = 128
setdisplay(width, height, 32, 1)
paper(rgb(0, 0, 0))
cls
setautoback(25)
randomize()

for i=1 to shades
    r = rnd(255)
    g = rnd(255)
    b = rnd(255)
    ink(rgb(r, g, b))

    w = rnd(width / 4)
    h = rnd(height / 4)
    x = rnd(width - w)
    y = rnd(height - h)
    rectangle(x, y, w, h, 0)
next

waitkey(k_escape)

以下で実行。
sdlBrt rectangle.sdlbas
or
sdlBasic rectangle.sdlbas
ウインドウが開いて、四角を描画できた。

sdlbasic_ss02.png

Windows版も試用。 :

Windows10 x64 20H2上でもインストールしてみた。

_sdlBasic - Browse /binary/2012 at SourceForge.net

sdlBasic-setup.exe と sdlBrt-setup.exe をDLして実行すれば、C:\Program Files (x86)\sdlbasic\ にインストールされる模様。

あるいは sdlBasic-win32-2012-12-15.zip と sdlBrt-win32-2012-12-15.zip を解凍して、任意の場所に置くことでも使えるようになるのかもしれない。

フォントが汚い。 :

sdlBasic のエディタ画面の、フォントが汚い…。

エディタの基本部分に SciTE を使ってるっぽいので、SciTE の設定が流用できるかと思ったけれど、試してみたら文字描画がめちゃくちゃになった…。

一応、Options → Open User Options File で、以下を記述してみたけど。
position.left=16
position.right=0
position.width=800
position.height=800
font.monospace=font:Inconsolata,size:18
font.base=$(font.monospace)
font.small=$(font.monospace)
font.comment=$(font.monospace)
font.code.comment.box=$(font.monospace)
font.code.comment.line=$(font.monospace)
font.code.comment.doc=$(font.monospace)
font.text=$(font.monospace)
font.text.comment=$(font.monospace)
font.embedded.base=$(font.monospace)
font.embedded.comment=$(font.monospace)
font.vbs=$(font.monospace)
font.js=$(font.monospace)
font.string.literal=$(font.monospace)
文字サイズは変わるけど、フォント種類が反映されてる気配が無い…。

更に、Ubuntu版の sdlBasic は、結構な頻度で、終了時に Segmentation fault (コアダンプ) が出力されている模様。

まあ、他のエディタでソースを書いて、sdlBrt hoge.sdlbas で実行しても済みそうではあるけど…。

さておき。この sdlBasic、2012年頃で開発が止まってるようでもあるし、更に Ubuntu版(Debian版)パッケージに至っては 2007年版が配布されてるし、まあ、とにかく古い…。あえて今から使う環境ではなさそうな印象を受けた。もっともソレを言ったら、BASIC言語からしてアレだけど…。

以上、1 日分です。

過去ログ表示

Prev - 2021/05 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project