1

LightTable を /opt/LightTable に入れました

デフォルトでは、テキスト エディター LightTable を ubuntu 14.04 64 ビットにインストールすると、それで開きたいファイルを右クリックしたときに、「LightTable で開く」が表示されません。

したがって、次を含むファイル /home/theuser/.local/share/applications/LightTable.desktop を作成しました。

[Desktop Entry]
Name=LighTable Text Editor
Comment=Edit text files
Exec=/opt/LightTable/LightTable %f
Terminal=false
Type=Application
Icon=/opt/LightTable/core/img/lticon.png
Categories=Utility;TextEditor;
StartupNotify=true
MimeType=text/plain

LightTable でファイルを開きたいときに、「LightTable で開く」が表示されるようにします。さて、問題が始まります。これを行うと、スクリプトのみを実行したかのように、LightTable のみが開きます

/opt/LightTable/LightTable

したがって、私はスクリプトを見に行きました:

#!/bin/bash

BIN=ltbin
HERE=`dirname $(readlink -f $0)`

LIBUDEV_0=libudev.so.0
LIBUDEV_1=libudev.so.1

add_udev_symlinks() {
  # 64-bit specific; look for libudev.so.0, and if that can't be
  # found link it to libudev.so.1
  FOLDERS="/lib64 /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu /usr/lib64 /usr/lib /lib"

  for folder in $FOLDERS; do
    if [ -f "${folder}/${LIBUDEV_0}" ]; then
      return 0
    fi
  done

  for folder in $FOLDERS; do
    if [ -f "${folder}/${LIBUDEV_1}" ]; then
      ln -snf "${folder}/${LIBUDEV_1}" "${HERE}/${LIBUDEV_0}"
      return 0
    fi
  done

  echo "${LIBUDEV_0} or ${LIBUDEV_1} not found in any of ${FOLDERS}".
  exit 1
}

add_udev_symlinks

ARGS="$@"

CORRECTED=${ARGS//-/<d>}
CORRECTED=${CORRECTED// /<s>}

if [ -t 0 ] && [ $# != 0 ]; then
  #We're in a terminal...
  LD_LIBRARY_PATH="$HERE:$LD_LIBRARY_PATH" $HERE/$BIN "<d><d>dir=`pwd`<s>$CORRECTED" &
else
  #We were double clicked
  LD_LIBRARY_PATH="$HERE:$LD_LIBRARY_PATH" $HERE/$BIN &
fi

末尾の if/else/fi を単純な :

LD_LIBRARY_PATH="$HERE:$LD_LIBRARY_PATH" $HERE/$BIN "<d><d>dir=`pwd`<s>$CORRECTED" &

正しい動作(端末からファイルを開くときの動作)が選択されるようにします。

これはほとんど私の一日を作りました。ここで、ファイルをダブルクリックするか、右クリックして [LightTable で開く] を選択すると、ファイルは確かに LightTable で開かれます... しかし、これは、ファイル名とファイルへのパスに名前がない場合にのみ当てはまります。名前の空白

「the file」という名前のファイルがスペースのないパス thepath にある場合、それをダブルクリックすると、LightTable に「the」と「file」という 2 つの空のファイルが開きます。パスにスペースが含まれている場合、同じ動作が制限されます。

誰かがアイデアを持っていますか?bash スクリプトを修正する必要があると思いますが、私はその専門家ではありません。(スクリプトが本当に間違っているかどうかさえわかりません...)

前もって感謝します

MEF

4

2 に答える 2

0

実際、これは LightTable のバグです。

問題 ( https://github.com/LightTable/LightTable/issues/1762 )を開き、パッチ ( https://github.com/LightTable/LightTable/pull/1763 ) を送信してこれを修正しました。

ここには 2 つの問題があります。

  • 現在、デプロイされた Bash スクリプトは、ターミナルから呼び出されない場合、LightTable に引数を渡しませんが、これは、たとえば gnome デスクトップ ショートカットを作成するために必要です。この問題は、Ubuntu で ALT+F2 ランチャーを使用して再現することもできます。
  • 個別に、LightTable は現在、名前に ' ' 文字が含まれるファイルを開くことができません。
于 2014-12-03T09:54:21.227 に答える