Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
b37114b4
Commit
b37114b4
authored
Sep 27, 2021
by
Marc Cornellà
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor(emacs): remove dependency on `require_tool.sh` and clean up code style
parent
a42db120
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
50 additions
and
52 deletions
+50
-52
emacs.plugin.zsh
plugins/emacs/emacs.plugin.zsh
+50
-52
No files found.
plugins/emacs/emacs.plugin.zsh
View file @
b37114b4
...
...
@@ -9,57 +9,55 @@
# - You can share opened buffered across opened frames.
# - Configuration changes made at runtime are applied to all frames.
if
"
$ZSH
/tools/require_tool.sh"
emacsclient 24 2>/dev/null
;
then
export
EMACS_PLUGIN_LAUNCHER
=
"
$ZSH
/plugins/emacs/emacsclient.sh"
# set EDITOR if not already defined.
export
EDITOR
=
"
${
EDITOR
:-${
EMACS_PLUGIN_LAUNCHER
}}
"
alias
emacs
=
"
$EMACS_PLUGIN_LAUNCHER
--no-wait"
alias
e
=
emacs
# open terminal emacsclient
alias
te
=
"
$EMACS_PLUGIN_LAUNCHER
-nw"
# same than M-x eval but from outside Emacs.
alias
eeval
=
"
$EMACS_PLUGIN_LAUNCHER
--eval"
# create a new X frame
alias
eframe
=
'emacsclient --alternate-editor "" --create-frame'
# Emacs ANSI Term tracking
if
[[
-n
"
$INSIDE_EMACS
"
]]
;
then
chpwd_emacs
()
{
print
-P
"
\0
33AnSiTc %d"
;
}
print
-P
"
\0
33AnSiTc %d"
# Track current working directory
print
-P
"
\0
33AnSiTu %n"
# Track username
# add chpwd hook
autoload
-Uz
add-zsh-hook
add-zsh-hook chpwd chpwd_emacs
fi
# Write to standard output the path to the file
# opened in the current buffer.
function
efile
{
local
cmd
=
"(buffer-file-name (window-buffer))"
"
$EMACS_PLUGIN_LAUNCHER
"
--eval
"
$cmd
"
|
tr
-d
\"
}
# Write to standard output the directory of the file
# opened in the the current buffer
function
ecd
{
local
cmd
=
"(let ((buf-name (buffer-file-name (window-buffer))))
(if buf-name (file-name-directory buf-name)))"
local dir
=
"
$(
$EMACS_PLUGIN_LAUNCHER
--eval
$cmd
|
tr
-d
\"
)
"
if
[
-n
"
$dir
"
]
;
then
echo
"
$dir
"
else
echo
"can not deduce current buffer filename."
>
/dev/stderr
return
1
fi
}
# Require emacs version to be minimum 24
autoload
-Uz
is-at-least
is-at-least 24
"
${${
(Az)
"
$(
emacsclient
--version
2>/dev/null
)
"
}
[2]
}
"
||
return
0
# Path to custom emacsclient launcher
export
EMACS_PLUGIN_LAUNCHER
=
"
${
0
:A:h
}
/emacsclient.sh"
# set EDITOR if not already defined.
export
EDITOR
=
"
${
EDITOR
:-${
EMACS_PLUGIN_LAUNCHER
}}
"
alias
emacs
=
"
$EMACS_PLUGIN_LAUNCHER
--no-wait"
alias
e
=
emacs
# open terminal emacsclient
alias
te
=
"
$EMACS_PLUGIN_LAUNCHER
-nw"
# same than M-x eval but from outside Emacs.
alias
eeval
=
"
$EMACS_PLUGIN_LAUNCHER
--eval"
# create a new X frame
alias
eframe
=
'emacsclient --alternate-editor "" --create-frame'
# Emacs ANSI Term tracking
if
[[
-n
"
$INSIDE_EMACS
"
]]
;
then
chpwd_emacs
()
{
print
-P
"
\0
33AnSiTc %d"
;
}
print
-P
"
\0
33AnSiTc %d"
# Track current working directory
print
-P
"
\0
33AnSiTu %n"
# Track username
# add chpwd hook
autoload
-Uz
add-zsh-hook
add-zsh-hook chpwd chpwd_emacs
fi
## Local Variables:
## mode: sh
## End:
# Write to standard output the path to the file
# opened in the current buffer.
function
efile
{
local
cmd
=
"(buffer-file-name (window-buffer))"
local
file
=
"
$(
"
$EMACS_PLUGIN_LAUNCHER
"
--eval
"
$cmd
"
|
tr
-d
\"
)
"
if
[[
-z
"
$file
"
]]
;
then
echo
"Can't deduce current buffer filename."
>
&2
return
1
fi
echo
"
$file
"
}
# Write to standard output the directory of the file
# opened in the the current buffer
function
ecd
{
local
file
file
=
"
$(
efile
)
"
||
return
$?
echo
"
${
file
:h
}
"
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment