Add terminator plugin to search for selected text

This commit is contained in:
Michael Campagnaro 2015-11-21 14:14:36 -05:00
parent 777a061efb
commit 42f1017d55
3 changed files with 61 additions and 0 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
vim/.netrwhist vim/.netrwhist
vim/bundle/* vim/bundle/*
!vim/bundle/Vundle.vim !vim/bundle/Vundle.vim
*.pyc

View File

@ -1,4 +1,5 @@
[global_config] [global_config]
enabled_plugins = LaunchpadCodeURLHandler, SearchGoogle, APTURLHandler, GrepEditor, LaunchpadBugURLHandler
title_hide_sizetext = True title_hide_sizetext = True
window_state = maximise window_state = maximise
[keybindings] [keybindings]
@ -117,6 +118,10 @@
type = Terminal type = Terminal
uuid = 8eec6a48-cbfb-449c-b49e-704da6e5996d uuid = 8eec6a48-cbfb-449c-b49e-704da6e5996d
[plugins] [plugins]
[[GrepEditor]]
command = vim +{line} {filepath}
groups = file line
match = ([^ \t\n\r\f\v:]+?):([0-9]+)
[profiles] [profiles]
[[default]] [[default]]
background_color = "#060505" background_color = "#060505"

View File

@ -0,0 +1,55 @@
import gtk
import urllib
import terminatorlib.plugin as plugin
import re
# Written by John Cooper http://choffee.co.uk
# Copyright 2010 John Cooper
# See copyright file that comes with this file for full licence
# Modified by cgw 2011/11/06
# AVAILABLE must contain a list of all the classes that you want exposed
AVAILABLE = ['SearchGoogle']
_spaces = re.compile(" +")
# TODO: move some of the constants into a config object
class SearchGoogle(plugin.Plugin):
capabilities = ['terminal_menu']
def do_search(self, searchMenu):
"""Launch Google search for string"""
if not self.searchstring:
return
base_uri = "http://www.google.com/search?q=%s"
uri = base_uri % urllib.quote(self.searchstring.encode("utf-8"))
gtk.show_uri(None, uri, gtk.gdk.CURRENT_TIME)
def callback(self, menuitems, menu, terminal):
"""Add our menu item to the menu"""
self.terminal = terminal
item = gtk.ImageMenuItem(gtk.STOCK_FIND)
item.connect('activate', self.do_search)
if terminal.vte.get_has_selection():
clip = gtk.clipboard_get(gtk.gdk.SELECTION_PRIMARY)
self.searchstring = clip.wait_for_text().strip()
self.searchstring = self.searchstring.replace("\n", " ")
self.searchstring = self.searchstring.replace("\t", " ")
self.searchstring = _spaces.sub(" ", self.searchstring)
else:
self.searchstring = None
if self.searchstring:
if len(self.searchstring) > 40:
displaystring = self.searchstring[:37] + "..."
else:
displaystring = self.searchstring
item.set_label("Search Google for \"%s\"" % displaystring)
item.set_sensitive(True)
else:
item.set_label("Search Google")
item.set_sensitive(False)
# Avoid turning any underscores in selection into menu accelerators
item.set_use_underline(False)
menuitems.append(item)