こんにちは!
ひさしぶり
Acrobat Reader DCのツールパネルを非表示にする方法
DCにアップデートしてから、PDFを開いたときに右側にパネルが表示されるようになった。ファイルの表示領域が圧迫されるし目を引くしで非表示にしたいんだけど、設定には項目がなく、毎回手動で閉じるしかない。自分でファイルを変更することで非表示にする方法はいくつかあるみたい。www.ka-net.org
最もよい方法は「Viewer.apppをテキストエディタで開いてツールパネルを読み込んでいる部分をコメントアウトする」だろう。ファイル構成を変更しないためトラブルが起こりづらく、元にも戻しやすい。
Readerはプラグインのように、外部ファイルで各パネルのレイアウトを読み込んでいるみたい。レイアウトを決定しているファイルは「~.appp」というファイルで、中身はXMLなので普通に編集できる。下記の方法で、ツールパネルを非表示にできた。
非表示にする手順
- Viewer.apppを探す
自分の環境では「C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroApp\JPN」にあった。
- 適当なテキストエディタで開く
念のため、バックアップとして同じフォルダにコピーしておくといいかも。
- 下記のようにコメントアウトして保存
<Application xmlns="http://ns.adobe.com/acrobat/app/2014" title="ビューア" id="Viewer" majorVersion="1" requiresDoc="true" minorVersion="0"> <Layouts> <!-- <Layout name="Default"> <RHP> <Component name="AppShortcutListView" type="Custom"/> </RHP> </Layout> --> </Layouts> </Application>
これだけです。かんたん!
WindowsのPowerShellによく使うディレクトリのブックマークモジュールを追加
WindowsのCUI、ヘビーユーザでもないので特に探しもせずPowerShellを使ってる。あまり不満はないけど1つだけ、いくら補完があっても毎回cd C:\Users\hoge\Desktop\Dropbox\project\ とか書くのがキツいので、cdb projectとかでブックマークできるモジュールを入れた。元ネタはココ
こんな感じで使える
Set-Bookmark <name> <path> Get-Bookmark # to list all Get-Bookmark <name> Remove-Bookmark <name> Clear-Bookmarks Invoke-Bookmark <name>
Set-Bookmarkでブックマーク保存して、Invoke-Bookmarkで移動する。
Set-Alias cdb Invoke-Bookmarkとか設定すると、cdb projectなどで可能。
やり方ざっくり
$profileで自分のプロフィールパスを確認$profile/Microsoft.PowerShell_profile.ps1がなければ作成$profile/Modules/bookmarks/を作成(途中のディレクトリがなければ作成)$profile/Modules/bookmarks/bookmarks.psm1を作成し、以下のスクリプトを記述
# bookmarks.psm1
# Exports: Set-Bookmark, Get-Bookmark, Remove-Bookmark, Clear-Bookmarks, Invoke-Bookmark
# holds hash of bookmarked locations
$_bookmarks = @{}
function Get-Bookmark() {
Write-Output ($_bookmarks.GetEnumerator() | sort Name)
}
function Remove-Bookmark($key) {
<#
.SYNOPSIS
Removes the bookmark with the given key.
#>
if ($_bookmarks.keys -contains $key) {
$_bookmarks.remove($key)
}
}
function Clear-Bookmarks() {
<#
.SYNOPSIS
Clears all bookmarks.
#>
$_bookmarks.Clear()
}
function Set-Bookmark($key, $location) {
<#
.SYNOPSIS
Bookmarks the given location or the current location (Get-Location).
#>
# bookmark the current location if a specific path wasn't specified
if ($location -eq $null) {
$location = (Get-Location).Path
}
# make sure we haven't already bookmarked this location (no need to clutter things)
if ($_bookmarks.values -contains $location) {
Write-Warning ("Already bookmarked as: " + ($_bookmarks.keys | where { $_bookmarks[$_] -eq $location }))
return
}
# if no specific key was specified then auto-set the key to the next bookmark number
if ($key -eq $null) {
$existingNumbers = ($_bookmarks.keys | Sort-Object -Descending | where { $_ -is [int] })
if ($existingNumbers.length -gt 0) {
$key = $existingNumbers[0] + 1
}
else {
$key = 1
}
}
$_bookmarks[$key] = $location
}
function Invoke-Bookmark($key) {
<#
.SYNOPSIS
Goes to the location specified by the given bookmark.
#>
if ([string]::IsNullOrEmpty($key)) {
Get-Bookmarks
return
}
if ($_bookmarks.keys -contains $key) {
Push-Location $_bookmarks[$key]
}
else {
Write-Warning "No bookmark set for the key: $key"
}
}
Export-ModuleMember Get-Bookmark, Remove-Bookmark, Clear-Bookmarks, Set-Bookmark, Invoke-Bookmark
$profile/Microsoft.PowerShell_profile.ps1以下のスクリプトを記述(ショートカットは自由に書き換えてOK)
# Microsoft.PowerShell_profile.ps1 Import-Module bookmarks.psm1 Set-Alias cdb Invoke-Bookmark Set-Bookmark project c:\path\to\my\project
スクリプトの実行権限がある人はPowerShellを再起動して完了。
再起動時に実行権限がないと警告される場合は、
Set-ExecutionPolicy RemoteSignedする。
http://windows-podcast.com/sundayprogrammer/archives/95
Set-ExecutionPolicyでレジストリ編集権限がないと言われる人は、
管理者権限でPowerShellを再起動(右クリック→管理者として起動)して再度行う。
yeomanのgeneratorをつくる際のポイントとハマた点
周回遅れでyeomanに手を出した。ネットには古い記事が多く、公式も必要最小限しか書いてないなーという印象。以下の記事はかなり参考にさせてもらった。バグがあったときに内部のエラーしか吐かれないため、慣れるまでは原因がわかりづらい。
既存のgeneratorは古い設計のものが多い
既存のgeneratorをベースにする方法を推奨する記事が多いが、古くからあるものは Base.prototypeを拡張して書かれており、あまりきれいじゃない。web上の入門記事もその形が多い。
比較的新しい方法なんだろうか、公式にあるBaseをextendしてゆく形の方がシンプルで見通しがいい。最初から入っているyeoman-generatorはその形でスケルトンが書かれているので、それを元に書いていくのが楽だと思う。ただし、自分の環境ではnode.jsのバージョンが古く、アップデートしないと動かなかった。
(ちなみに2015年1月現在、windowsでは npm install -g n が通らない問題があり、面倒だがパッケージを落として実行する必要がある模様)
基本の流れ(node.js, yeomanなど入ってる前提)
yeoman:installDependencyのcallbackでcopyが動かぬ
yeomanで自分用generatorをつくったらハマった。
bowerでファイルのインストール後に開発ディレクトリに配置したいのだが、
エラーが出ずcopyも実行されない。
install: function () { this.installDependencies({ callback: function () { this.copy( this.destinationPath("/bower_components/normalize.css/normalize.css"), this.destinationPath("/src/css/normalize.css") ); }.bind(this) }); }
thisもちゃんとBaseが入ってたしcopyの中身もおかしくない。
また、コピー元も先も存在しているため原因不明。
結局、気持ち悪いがstackoverflowを参考にネイティブのfsを使った。
install: function () { this.installDependencies({ callback: function () { var fs = require('fs'); fs.createReadStream(this.destinationPath("/bower_components/normalize.css/normalize.css")) .pipe(fs.createWriteStream(this.destinationPath("/src/css/normalize.css")); }.bind(this) }); }
この形だと存在しないディレクトリが含まれている場合、copyのように自動では生成されない。
エラーも吐かず、実行されてないことに気づきにくくいため注意。