아마추어 peco

7795 단어 ZshPeco

처음에



zsh peco로 구그하면 대단한 것이 가득합니다. 히스토리 검색을 입력하는 곳(zle 라고 말하는 거야?)에 두드려 커서를 끝에 가져오면 굉장합니다. 나도 내용을 모르는 채, 코피페로 사용하고 있습니다. 하지만 너무 대단해서, 보통의 사람은, 이런 것 자신이라면 잘 다룰 수 없다고, 나름대로의 커스터마이즈를 포기해 버릴지도 모릅니다. 그래서 내가 이런 정도의 사용법도 있다고 소개하는 것으로 보통의 Linux 사용자에게 용기를 줄 수 있다고 생각합니다. 덧붙여서 내 프로그래밍 힘은 hello.c를 구그 하지 않으면 쓸 수 없는 레벨입니다.

peco는 로그인 관리자입니다.



한타루 리눅스 사용자는 그래픽 로그인 관리자를 사용하지 않습니다. 그러나 매번 startx 하는 것도 무수하다는 것입니다. 그래서 $HOME/.zprofile
# tty1=起動直後のやつのときだけ有効
if [[ "$(tty)" == '/dev/tty1' ]]; then

  # echo で出力したのを peco に流すという簡単設計
  # 自分しか使わないんだから、複数選んじゃったとか、何も選ばなかったとかの例外処理
  # なんて不要です。
  case $(echo 'X\nTTY\nLogout\nPoweroff\nReboot' | peco) in
    X)
      startx -- vt7
      logout
    ;;
    Logout) logout ;;
    Poweroff) sudo /sbin/poweroff ;;
    Reboot) sudo /sbin/reboot ;;
  esac
fi



peco는 환경 변수 선택기



Linux의 묘미는 ./configure && make && make install입니다. 그리고 pgo나 lto를 추구하는 것이 한층 더 한 로맨스일 것입니다. 따라서 CFLAGS, LDFLAGS 등을 쉽게 전환 할 수 있어야합니다.

~/.local/bin/oreflags
#!/bin/zsh
# echo で出力したのを peco に流すという簡単設計
i=$(echo 'pre-pgo\npost-pgo\nregular\nsafe\nlto\ncurrent'|peco --prompt "CFLAGS? > ")

# なんだかんだで、何も選ばなかったときの処理を学びました
if [ -z $i ]; then return; fi

  case $i in
    pre-pgo)
      export CFLAGS="-march=native -O2 -ftree-vectorize -fprofile-generate=/sources/gcda -fprofile-arcs -pipe"
      export CXXFLAGS=$CFLAGS
      export LDFLAGS='-lgcov'
      export LIBS='-lgcov'
    ;;
    post-pgo)
      export CFLAGS="-march=native -O2 -ftree-vectorize -fprofile-use=/sources/gcda -fprofile-correction -pipe"
      export CXXFLAGS=$CFLAGS
      unset LDFLAGS
      unset LIBS
    ;;
    lto)
      export CFLAGS="-march=native -O2 -ftree-vectorize -flto -pipe"
      export CXXFLAGS=$CFLAGS
      unset LDFLAGS
      unset LIBS
    ;;
    regular)
      export CFLAGS="-march=native -O2 -ftree-vectorize -pipe"
      export CXXFLAGS=$CFLAGS
      unset LDFLAGS
      unset LIBS
    ;;
    safe)
      export CFLAGS="-mtune=native -O2 -ftree-vectorize -pipe"
      export CXXFLAGS=$CFLAGS
      unset LDFLAGS
      unset LIBS
    ;;
    current)
    ;;
  esac
echo "CFLAGS=$CFLAGS"
echo "CXXFLAGS=$CXXFLAGS"
echo "LDFLAGS=$LDFLAGS"
echo "LIBS=$LIBS"

~/.zshrc
# 私は .zshrc に function を余り書かない派。.zshrc は短かくしたいから、基本アウトソース
alias oreflags='source ~/.local/bin/oreflags'


make 에러를 영어로 기록하고 뭔가 포럼에 게시하고 싶을 때 등을 향해 LANG 전환도 중요합니다.

~/.local/bin/orelang
#!/bin/zsh

i=$(echo 'ja\nen\ncurrent' | peco )
[ -z $i ] && return

  case $i in
    ja)
      export LANG=ja_JP.utf8
      # break
    ;;
    en)
      export LANG=en_US
      # break
    ;;
    current)
      # break
    ;;
  esac
echo "LANG=$LANG"

요약



스스로 결정 치는 echopeco 에 흘려 case 하면 간단하게 나 메뉴가 완성됩니다.

좋은 웹페이지 즐겨찾기