*twitvim.txt*  Twitter client for Vim

		      ---------------------------------
		      TwitVim: A Twitter client for Vim
		      ---------------------------------

Author: Po Shan Cheah <morton@mortonfox.com> 
	http://twitter.com/mortonfox

License: The Vim License applies to twitvim.vim and twitvim.txt (see
	|copyright|) except use "TwitVim" instead of "Vim". No warranty,
	express or implied. Use at your own risk.


==============================================================================
1. Contents					*TwitVim* *TwitVim-contents*

	1. Contents...............................: |TwitVim-contents|
	2. Introduction...........................: |TwitVim-intro|
	3. Installation...........................: |TwitVim-install|
	   cURL...................................: |TwitVim-cURL|
	   twitvim.vim............................: |TwitVim-add|
	   twitvim_login..........................: |twitvim_login|
	   twitvim_proxy..........................: |twitvim_proxy|
	   twitvim_proxy_login....................: |twitvim_proxy_login|
	   twitvim_api_root.......................: |twitvim_api_root|
	   twitvim-identi.ca......................: |twitvim-identi.ca|
	3.1. Base64-Encoded Login.................: |TwitVim-login-base64|
	     twitvim_login_b64....................: |twitvim_login_b64|
	     twitvim_proxy_login_b64..............: |twitvim_proxy_login_b64|
	3.2. Alternatives to cURL.................: |TwitVim-non-cURL|
	     twitvim_enable_perl..................: |twitvim_enable_perl|
	     twitvim_enable_python................: |twitvim_enable_python|
	     twitvim_enable_ruby..................: |twitvim_enable_ruby|
	     twitvim_enable_tcl...................: |twitvim_enable_tcl|
	3.3. Using Twitter SSL API................: |TwitVim-ssl|
	     Twitter SSL via cURL.................: |TwitVim-ssl-curl|
	     twitvim_cert_insecure................: |twitvim_cert_insecure|
	     Twitter SSL via Perl interface.......: |TwitVim-ssl-perl|
	     Twitter SSL via Ruby interface.......: |TwitVim-ssl-ruby|
	     Twitter SSL via Python interface.....: |TwitVim-ssl-python|
	4. Manual.................................: |TwitVim-manual|
	4.1. Update Commands......................: |TwitVim-update-commands|
	     :PosttoTwitter.......................: |:PosttoTwitter|
	     :CPosttoTwitter......................: |:CPosttoTwitter|
	     :BPosttoTwitter......................: |:BPosttoTwitter|
	     :SendDMTwitter.......................: |:SendDMTwitter|
	4.2. Timeline Commands....................: |TwitVim-timeline-commands|
	     :UserTwitter.........................: |:UserTwitter|
	     twitvim_count........................: |twitvim_count|
	     :FriendsTwitter......................: |:FriendsTwitter|
	     :RepliesTwitter......................: |:RepliesTwitter|
	     :PublicTwitter.......................: |:PublicTwitter|
	     :DMTwitter...........................: |:DMTwitter|
	     :DMSentTwitter.......................: |:DMSentTwitter|
	     :BackTwitter.........................: |:BackTwitter|
	     :ForwardTwitter......................: |:ForwardTwitter|
	     :RefreshTwitter......................: |:RefreshTwitter|
	     :NextTwitter.........................: |:NextTwitter|
	     :PreviousTwitter.....................: |:PreviousTwitter|
	4.3. Mappings.............................: |TwitVim-mappings|
	     Alt-T................................: |TwitVim-A-t|
	     Ctrl-T...............................: |TwitVim-C-t|
	     Reply Feature........................: |TwitVim-reply|
	     Alt-R................................: |TwitVim-A-r|
	     <Leader>r............................: |TwitVim-Leader-r|
	     Retweet Feature......................: |TwitVim-retweet|
	     <Leader>R............................: |TwitVim-Leader-S-r|
	     twitvim_retweet_format...............: |twitvim_retweet_format|
	     Direct Message Feature...............: |TwitVim-direct-message|
	     Alt-D................................: |TwitVim-A-d|
	     <Leader>d............................: |TwitVim-Leader-d|
	     Goto Feature.........................: |TwitVim-goto|
	     Alt-G................................: |TwitVim-A-g|
	     <Leader>g............................: |TwitVim-Leader-g|
	     twitvim_browser_cmd..................: |twitvim_browser_cmd|
	     LongURL Feature......................: |TwitVim-LongURL|
	     <Leader>e............................: |TwitVim-Leader-e|
	     User Profiles........................: |TwitVim-profile|
	     <Leader>p............................: |TwitVim-Leader-p|
	     In-reply-to..........................: |TwitVim-inreplyto|
	     <Leader>@............................: |TwitVim-Leader-@|
	     Delete...............................: |TwitVim-delete|
	     <Leader>X............................: |TwitVim-Leader-X|
	     Ctrl-O...............................: |TwitVim-C-o|
	     Ctrl-I...............................: |TwitVim-C-i|
	     Refresh..............................: |TwitVim-refresh|
	     <Leader><Leader>.....................: |TwitVim-Leader-Leader|
	     Next page............................: |TwitVim-next|
	     Ctrl-PageDown........................: |TwitVim-C-PageDown|
	     Previous page........................: |TwitVim-previous|
	     Ctrl-PageUp..........................: |TwitVim-C-PageUp|
	4.4. Utility Commands.....................: |TwitVim-utility|
	     :Tweetburner.........................: |:Tweetburner|
	     :ATweetburner........................: |:ATweetburner|
	     :PTweetburner........................: |:PTweetburner|
	     :Snipurl.............................: |:Snipurl|
	     :ASnipurl............................: |:ASnipurl|
	     :PSnipurl............................: |:PSnipurl|
	     :Metamark............................: |:Metamark|
	     :AMetamark...........................: |:AMetamark|
	     :PMetamark...........................: |:PMetamark|
	     :TinyURL.............................: |:TinyURL|
	     :ATinyURL............................: |:ATinyURL|
	     :PTinyURL............................: |:PTinyURL|
	     :BitLy...............................: |:BitLy|
	     :ABitLy..............................: |:ABitLy|
	     :PBitLy..............................: |:PBitLy|
	     :IsGd................................: |:IsGd|
	     :AIsGd...............................: |:AIsGd|
	     :PIsGd...............................: |:PIsGd|
	     :UrlBorg.............................: |:UrlBorg|
	     twitvim_urlborg_key..................: |twitvim_urlborg_key|
	     :AUrlBorg............................: |:AUrlBorg|
	     :PUrlBorg............................: |:PUrlBorg|
	     :Trim................................: |:Trim|
	     twitvim_trim_login...................: |twitvim_trim_login|
	     :ATrim...............................: |:ATrim|
	     :PTrim...............................: |:PTrim|
	     :Cligs...............................: |:Cligs|
	     twitvim_cligs_key....................: |twitvim_cligs_key|
	     :ACligs..............................: |:ACligs|
	     :PCligs..............................: |:PCligs|
	     :SearchTwitter.......................: |:SearchTwitter|
	     :RateLimitTwitter....................: |:RateLimitTwitter|
	     :ProfileTwitter......................: |:ProfileTwitter|
	     :LocationTwitter.....................: |:LocationTwitter|
	5. Timeline Highlighting..................: |TwitVim-highlight|
	   twitterUser............................: |hl-twitterUser|
	   twitterTime............................: |hl-twitterTime|
	   twitterTitle...........................: |hl-twitterTitle|
	   twitterLink............................: |hl-twitterLink|
	   twitterReply...........................: |hl-twitterReply|
	6. Tips and Tricks........................: |TwitVim-tips|
	6.1. Timeline Hotkeys.....................: |TwitVim-hotkeys|
	6.2. Switching between services...........: |TwitVim-switch|
	6.3. Line length in status line...........: |TwitVim-line-length|
	7. History................................: |TwitVim-history|
	8. Credits................................: |TwitVim-credits|


==============================================================================
2. Introduction						*TwitVim-intro*

	TwitVim is a plugin that allows you to post to Twitter, a
	microblogging service at http://www.twitter.com.

	Since version 0.2.19, TwitVim also supports other microblogging
	services, such as identi.ca, that offer Twitter-compatible APIs. See
	|twitvim_api_root| for information on configuring TwitVim for those
	services.


==============================================================================
3. Installation						*TwitVim-install*

	1. Install cURL.				*TwitVim-cURL*

	If you don't already have cURL on your system, download it from
	http://curl.haxx.se/. Make sure that the curl executable is in a
	directory listed in your PATH environment variable, or the equivalent
	for your system.

	If you have the Perl, Python, Ruby, or Tcl interfaces, you may use one
	of those instead of installing cURL. See |TwitVim-non-cURL| for
	setup details.


	2. twitvim.vim					*TwitVim-add*

	Add twitvim.vim to your plugins directory. The location depends on
	your operating system. See |add-global-plugin| for details.

	If you installed from the Vimball (.vba) file, twitvim.vim should
	already be in its correct place.


	3. twitvim_login				*twitvim_login*

	Add the following to your vimrc:

		let twitvim_login = "USER:PASS"

	Replace USER with your Twitter user name and PASS with your Twitter
	password.

	It is possible to avoid having your Twitter password in plaintext in
	your vimrc. See |TwitVim-login-base64| for details.


	4. twitvim_proxy				*twitvim_proxy*

	This step is only needed if you access the web through a HTTP proxy.
	If you use a HTTP proxy, add the following to your vimrc:

		let twitvim_proxy = "proxyserver:proxyport"

	Replace proxyserver with the address of the HTTP proxy and proxyport
	with the port number of the HTTP proxy.


	5. twitvim_proxy_login				*twitvim_proxy_login*

	If the HTTP proxy requires authentication, add the following to your
	vimrc:

		let twitvim_proxy_login = "proxyuser:proxypassword"

	Where proxyuser is your proxy user and proxypassword is your proxy
	password.

	It is possible to avoid having your proxy password in plaintext in
	your vimrc. See |TwitVim-login-base64| for details.


	6. twitvim_api_root				*twitvim_api_root*

	This setting allows you to configure TwitVim to communicate with
	servers other than twitter.com that implement a Twitter-compatible
	API.

							*twitvim-identi.ca*
	For instance, to use identi.ca instead of Twitter, add this to your
	vimrc:

		let twitvim_api_root = "http://identi.ca/api"
	
	A server implementing a Twitter-compatible API may not support all of
	Twitter's features, so some TwitVim commands may not work.


------------------------------------------------------------------------------
3.1. Base64-Encoded Login				*TwitVim-login-base64*

	For safety purposes, TwitVim allows you to specify your Twitter login
	and proxy login information preencoded in base64. This is not truly
	secure as it is not encryption but it can stop casual onlookers
	from reading off your password when you edit your vimrc.

						*twitvim_login_b64*
	To do that, set the following in your vimrc:

		let twitvim_login_b64 = "base64string"
	
						*twitvim_proxy_login_b64*
	If your HTTP proxy needs authentication, set the following:

		let twitvim_proxy_login_b64 = "base64string"


	Where base64string is your username:password encoded in base64.


	An example:

	Let's say Joe User has a Twitter login of "joeuser" and a password of
	"joepassword". His first step is to encode "joeuser:joepassword" in
	Base64. He can either use a standalone utility to do that or, in a
	pinch, he can do the encoding at websites such as the following:
	http://makcoder.sourceforge.net/demo/base64.php
	http://www.opinionatedgeek.com/dotnet/tools/Base64Encode/

	The result is: am9ldXNlcjpqb2VwYXNzd29yZA==

	Then he adds the following to his vimrc:

		let twitvim_login_b64 = "am9ldXNlcjpqb2VwYXNzd29yZA=="

	And his setup is ready.


------------------------------------------------------------------------------
3.2. Alternatives to cURL				*TwitVim-non-cURL*

	TwitVim supports http networking through Vim's Perl, Python, Ruby, and
	Tcl interfaces, so if you have any of those interfaces compiled into
	your Vim program, you can use that instead of cURL.
	
	Generally, it is slightly faster to use one of those scripting
	interfaces for networking because it avoids running an external
	program. On Windows, it also avoids a brief taskbar flash when cURL
	runs.

	To find out if you have those interfaces, use the |:version| command
	and check the |+feature-list|. Then to enable this special http
	networking code in TwitVim, add one of the following lines to your
	vimrc:

		let twitvim_enable_perl = 1
		let twitvim_enable_python = 1
		let twitvim_enable_ruby = 1
		let twitvim_enable_tcl = 1

	You can enable more than one scripting language but TwitVim will only
	use the first one it finds.


	1. Perl interface				*twitvim_enable_perl*

	To enable TwitVim's Perl networking code, add the following to your
	vimrc:

		let twitvim_enable_perl = 1

	TwitVim requires the MIME::Base64 and LWP::UserAgent modules. If you
	have ActivePerl, these modules are included in the default
	installation.


	2. Python interface				*twitvim_enable_python*

	To enable TwitVim's Python networking code, add the following to your
	vimrc:

		let twitvim_enable_python = 1

	TwitVim requires the urllib, urllib2, and base64 modules. These
	modules are in the Python standard library.


	3. Ruby interface				*twitvim_enable_ruby*

	To enable TwitVim's Ruby networking code, add the following to your
	vimrc:

		let twitvim_enable_ruby = 1

	TwitVim requires the net/http, uri, and Base64 modules. These modules
	are in the Ruby standard library.

	In addition, TwitVim requires a Vim patch to fix an if_ruby networking
	problem. See the following message:

	http://www.mail-archive.com/vim_dev@googlegroups.com/msg03693.html

	and also Bram's correction to the patch:

	http://www.mail-archive.com/vim_dev@googlegroups.com/msg03713.html


	3. Tcl interface				*twitvim_enable_tcl*

	To enable TwitVim's Tcl networking code, add the following to your
	vimrc:

		let twitvim_enable_tcl = 1

	TwitVim requires the http, uri, and base64 modules. uri and base64 are
	in the Tcllib library so you may need to install that. See
	http://tcllib.sourceforge.net/

	If you have ActiveTcl 8.5, the default installation does not include
	Tcllib. Run the following command from the shell to add Tcllib:

		teacup install tcllib


------------------------------------------------------------------------------
3.3. Using Twitter SSL API				*TwitVim-ssl*

	For added security, TwitVim can use the Twitter SSL API instead of the
	regular Twitter API. You configure this by setting |twitvim_api_root|
	to the https version of the URL:

		let twitvim_api_root = "https://twitter.com"

	For identi.ca:

		let twitvim_api_root = "https://identi.ca/api"

	There are certain pre-requisites, as explained below.


	1. Twitter SSL via cURL				*TwitVim-ssl-curl*

	To use SSL via cURL, you need to install the SSL libraries and an
	SSL-enabled build of cURL.

							*twitvim_cert_insecure*
	Even after you've done that, cURL may complain about certificates that
	failed verification. If you need to override certificate checking, set
	twitvim_cert_insecure:

		let twitvim_cert_insecure = 1


	2. Twitter SSL via Perl interface		*TwitVim-ssl-perl*

	To use SSL via the TwitVim Perl interface (See |twitvim_enable_perl|),
	you need to install the SSL libraries and the Crypt::SSLeay Perl
	module.

	If you are using Twitter SSL over a proxy, do not set twitvim_proxy
	and twitvim_proxy_login. Crypt::SSLeay gets proxy information from
	the environment, so do this instead:

		let $HTTPS_PROXY="http://proxyserver:proxyport"
		let $HTTPS_PROXY_USERNAME="user"
		let $HTTPS_PROXY_PASSWORD="password"

	Alternatively, you can set those environment variables before starting
	Vim.


	3. Twitter SSL via Ruby interface		*TwitVim-ssl-ruby*

	To use SSL via Ruby, you need to install the SSL libraries and an
	SSL-enabled build of Ruby.

	If Ruby produces the error "`write': Bad file descriptor" in http.rb,
	then you need to check your certificates or override certificate
	checking. See |twitvim_cert_insecure|.

	Set twitvim_proxy and twitvim_proxy_login as usual if using Twitter
	SSL over a proxy.


	4. Twitter SSL via Python interface		*TwitVim-ssl-python*

	To use SSL via Python, you need to install the SSL libraries and an
	SSL-enabled build of Python.

	The Python interface does not yet support Twitter SSL over a proxy.
	This is due to a missing feature in urllib2.


	5. Twitter SSL via TCL interface

	I do not know how to make this work with Twitter SSL yet. If you
	succeed, let me know what you did.


==============================================================================
4. TwitVim Manual					*TwitVim-manual*

------------------------------------------------------------------------------
4.1. Update Commands				*TwitVim-update-commands*

	These commands post an update to your Twitter account. If the friends,
	user, or public timeline is visible, TwitVim will insert the update
	into the timeline view after posting it.

	:PosttoTwitter					*:PosttoTwitter*

	This command will prompt you for a message and post it to Twitter.

	:CPosttoTwitter					*:CPosttoTwitter*

	This command posts the current line in the current buffer to Twitter.

	:BPosttoTwitter					*:BPosttoTwitter*

	This command posts the contents of the current buffer to Twitter.

	:SendDMTwitter {username}			*:SendDMTwitter*

	This command will prompt you for a direct message to send to user
	{username}.

------------------------------------------------------------------------------
4.2. Timeline Commands				*TwitVim-timeline-commands*

	These commands retrieve a Twitter timeline and display it in a special
	Twitter buffer. TwitVim applies syntax highlighting to highlight
	certain elements in the timeline view. See |TwitVim-highlight| for a
	list of highlighting groups it uses.


	:[count]UserTwitter				*:UserTwitter*
	:[count]UserTwitter {username}

	This command displays your Twitter timeline.

	If you specify a {username}, this command displays the timeline for
	that user.

	If you specify [count], that number is used as the page number. For
	example, :2UserTwitter displays the second page from your user
	timeline.

							*twitvim_count*
	You can configure the number of tweets returned by :UserTwitter by
	setting twitvim_count. For example,

		let twitvim_count = 50

	will make :UserTwitter return 50 tweets instead of the default of 20.
	You can set twitvim_count to any integer from 1 to 200.


	:[count]FriendsTwitter				*:FriendsTwitter*
	:[count]FriendsTwitter {username}

	This command displays your Twitter timeline with updates from friends
	merged in.

	If you specify a {username}, this command displays the friends
	timeline for that user. Note: Twitter has disabled this API feature.

	If you specify [count], that number is used as the page number. For
	example, :2FriendsTwitter displays the second page from your friends
	timeline.

	You can configure the number of tweets returned by :FriendsTwitter by
	setting |twitvim_count|.


	:[count]RepliesTwitter				*:RepliesTwitter*

	This command displays a timeline of @-replies that you've received
	from other Twitter users.

	If you specify [count], that number is used as the page number. For
	example, :2RepliesTwitter displays the second page from your replies
	timeline.


	:PublicTwitter					*:PublicTwitter*

	This command displays the public timeline.


	:[count]DMTwitter				*:DMTwitter*

	This command displays direct messages that you've received.

	If you specify [count], that number is used as the page number. For
	example, :2DMTwitter displays the second page from your direct
	messages timeline.


	:[count]DMSentTwitter				*:DMSentTwitter*

	This command displays direct messages that you've sent.

	If you specify [count], that number is used as the page number. For
	example, :2DMSentTwitter displays the second page from your direct
	messages sent timeline.


	:BackTwitter					*:BackTwitter*

	This command takes you back to the previous timeline in the timeline
	stack. TwitVim saves a limited number of timelines. This command
	will display a warning if you attempt to go beyond the oldest saved
	timeline.


	:ForwardTwitter					*:ForwardTwitter*

	This command takes you to the next timeline in the timeline stack.
	It will display a warning if you attempt to go past the newest saved
	timeline so this command can only be used after :BackTwitter.


	:RefreshTwitter					*:RefreshTwitter*

	This command refreshes the timeline.


	:NextTwitter					*:NextTwitter*

	This command loads the next (older) page in the timeline.


	:PreviousTwitter				*:PreviousTwitter*

	This command loads the previous (newer) page in the timeline. If the
	timeline is on the first page, it issues a warning and doesn't do
	anything.


------------------------------------------------------------------------------
4.3. Mappings						*TwitVim-mappings*

	Alt-T						*TwitVim-A-t*
	Ctrl-T						*TwitVim-C-t*

	In visual mode, Alt-T posts the highlighted text to Twitter.

	Ctrl-T is an alternative to the Alt-T mapping. If the menu bar is
	enabled, Alt-T pulls down the Tools menu. So use Ctrl-T instead.


							*TwitVim-reply*
	Alt-R						*TwitVim-A-r*
	<Leader>r					*TwitVim-Leader-r*

	This mapping is local to the timeline buffer. In the timeline buffer,
	it starts composing an @-reply on the command line to the author of
	the tweet on the current line.

	Under Cygwin, Alt-R is not recognized so you can use <Leader>r as an
	alternative. The <Leader> character defaults to \ (backslash) but see
	|mapleader| for information on customizing that.


							*TwitVim-retweet*	
	<Leader>R					*TwitVim-Leader-S-r*

	This mapping (Note: uppercase 'R' instead of 'r'.) is local to the
	timeline buffer. It is similar to the retweet feature in popular
	Twitter clients. In the timeline buffer, it sends the current line to
	the command line so that you can repost this line as a new tweet.

						    *twitvim_retweet_format*
	By default, TwitVim retweets tweets in the following format:

		Retweeting @user: text of the tweet

	You can customize the retweet format by adding the following to your
	vimrc, for example:

		let twitvim_retweet_format = 'Retweet from %s: %t'

	or:

		let twitvim_retweet_format = '%t (retweeted from %s)'

	When you retweet a tweet, TwitVim will replace "%s" in
	twitvim_retweet_format with the user name of the original poster and
	"%t" with the text of the tweet.

	The default setting of twitvim_retweet_format is "Retweeting %s: %t"


							*TwitVim-direct-message*
	Alt-D						*TwitVim-A-d*
	<Leader>d					*TwitVim-Leader-d*

	This mapping is local to the timeline buffer. In the timeline buffer,
	it starts composing a direct message on the command line to the author
	of the tweet on the current line.

	Under Cygwin, Alt-D is not recognized so you can use <Leader>d as an
	alternative. The <Leader> character defaults to \ (backslash) but see
	|mapleader| for information on customizing that.


							*TwitVim-goto*
	Alt-G						*TwitVim-A-g*
	<Leader>g					*TwitVim-Leader-g*

	This mapping is local to the timeline and user profile buffers. It
	launches the web browser with the URL at the cursor position. If you
	visually select text before invoking this mapping, it launches the web
	browser with the selected text as is.

	As a special case, if the cursor is on a word of the form @user or
	user:, TwitVim will display that user's timeline in the timeline
	buffer. This will not launch the web browser.

	In addition, if the cursor is on a word of the form #hashtag, TwitVim
	will do a Twitter Search for that #hashtag. This too will not launch
	the web browser.

							*twitvim_browser_cmd*
	Before using this command, you need to tell TwitVim how to launch your
	browser. For example, you can add the following to your vimrc:

		let twitvim_browser_cmd = 'firefox.exe'

	Of course, replace firefox.exe with the browser of your choice.


							*TwitVim-LongURL*
	<Leader>e					*TwitVim-Leader-e*

	This mapping is local to the timeline and user profile buffers. It
	calls the LongURL API (see http://longurl.org/) to expand the short
	URL at the cursor position. A short URL is a URL from a URL shortening
	service such as TinyURL, SnipURL, etc. Use this feature if you wish to
	preview a URL before browsing to it with |TwitVim-goto|.

	If you visually select text before invoking this mapping, it calls the
	LongURL API with the selected text as is.

	If successful, TwitVim will display the result from LongURL in the
	message area.


							*TwitVim-profile*
	<Leader>p					*TwitVim-Leader-p*

	This mapping is local to the timeline and user profile buffers. It
	calls the Twitter API to retrieve user profile information (e.g. name,
	location, bio, update count) for the user name at the cursor position.
	It displays the information in a user profile buffer.

	If you visually select text before invoking this mapping, it uses the
	selected text as is for the user name.

	See also |:ProfileTwitter|.


							*TwitVim-inreplyto*
	<Leader>@					*TwitVim-Leader-@*

	This mapping is local to the timeline buffer. If the current line is
	an @-reply tweet, it calls the Twitter API to retrieve the tweet to
	which this one is replying. Then it will display that predecessor
	tweet below the current one.
	
	If there is no in-reply-to information, it will show a warning and do
	nothing.

	This mapping is useful in the replies timeline. See |:RepliesTwitter|.


							*TwitVim-delete*
	<Leader>X					*TwitVim-Leader-X*

	This mapping is local to the timeline buffer. The 'X' in the mapping
	is uppercase. It calls the Twitter API to delete the tweet or message
	on the current line.

	Note: You have to be the author of the tweet in order to delete it.
	You can delete direct messages that you sent or received.


	Ctrl-O						*TwitVim-C-o*

	This mapping takes you to the previous timeline in the timeline stack.
	See |:BackTwitter|.

	Ctrl-I						*TwitVim-C-i*

	This mapping takes you to the next timeline in the timeline stack.
	See |:ForwardTwitter|.


							*TwitVim-refresh*
	<Leader><Leader> 				*TwitVim-Leader-Leader*

	This mapping refreshes the timeline. See |:RefreshTwitter|.


							*TwitVim-next*
	Ctrl-PageDown					*TwitVim-C-PageDown*

	This mapping loads the next (older) page in the timeline.
	See |:NextTwitter|.

	
							*TwitVim-previous*
	Ctrl-PageUp					*TwitVim-C-PageUp*

	This command loads the previous (newer) page in the timeline. If the
	timeline is on the first page, it issues a warning and doesn't do
	anything. See |:PreviousTwitter|.


------------------------------------------------------------------------------
4.4. Utility Commands					*TwitVim-utility*

	:Tweetburner					*:Tweetburner*
	:Tweetburner {url}

	Tweetburner is a URL forwarding and shortening service. See
	http://tweetburner.com/

	This command calls the Tweetburner API to get a short URL in place of
	<url>. If {url} is not provided on the command line, the command will
	prompt you to enter a URL. The short URL is then inserted into the
	current buffer at the current position.

	:ATweetburner					*:ATweetburner*
	:ATweetburner {url}

	Same as :Tweetburner but appends, i.e. inserts after the current
	position instead of at the current position,  the short URL instead.

	:PTweetburner					*:PTweetburner*
	:PTweetburner {url}
	
	Same as :Tweetburner but prompts for a tweet on the command line with
	the short URL already inserted.


	:Snipurl					*:Snipurl*
	:Snipurl {url}

	SnipURL is a URL forwarding and shortening service. See
	http://www.snipurl.com/

	This command calls the SnipURL API to get a short URL in place of
	<url>. If {url} is not provided on the command line, the command will
	prompt you to enter a URL. The short URL is then inserted into the
	current buffer at the current position.

	:ASnipurl					*:ASnipurl*
	:ASnipurl {url}

	Same as :Snipurl but appends, i.e. inserts after the current
	position instead of at the current position,  the short URL instead.

	:PSnipurl					*:PSnipurl*
	:PSnipurl {url}
	
	Same as :Snipurl but prompts for a tweet on the command line with
	the short URL already inserted.


	:Metamark					*:Metamark*
	:Metamark {url}

	Metamark is a URL forwarding and shortening service. See
	http://metamark.net/

	This command calls the Metamark API to get a short URL in place of
	<url>. If {url} is not provided on the command line, the command will
	prompt you to enter a URL. The short URL is then inserted into the
	current buffer at the current position.

	:AMetamark					*:AMetamark*
	:AMetamark {url}

	Same as :Metamark but appends, i.e. inserts after the current
	position instead of at the current position,  the short URL instead.

	:PMetamark					*:PMetamark*
	:PMetamark {url}
	
	Same as :Metamark but prompts for a tweet on the command line with
	the short URL already inserted.


	:TinyURL					*:TinyURL*
	:TinyURL {url}

	TinyURL is a URL forwarding and shortening service. See
	http://tinyurl.com

	This command calls the TinyURL API to get a short URL in place of
	<url>. If {url} is not provided on the command line, the command will
	prompt you to enter a URL. The short URL is then inserted into the
	current buffer at the current position.

	:ATinyURL					*:ATinyURL*
	:ATinyURL {url}

	Same as :TinyURL but appends, i.e. inserts after the current
	position instead of at the current position,  the short URL instead.

	:PTinyURL					*:PTinyURL*
	:PTinyURL {url}
	
	Same as :TinyURL but prompts for a tweet on the command line with
	the short URL already inserted.


	:BitLy						*:BitLy*
	:BitLy {url}

	bit.ly is a URL forwarding and shortening service. See
	http://bit.ly/go

	This command calls the bit.ly API to get a short URL in place of
	<url>. If {url} is not provided on the command line, the command will
	prompt you to enter a URL. The short URL is then inserted into the
	current buffer at the current position.

	:ABitLy						*:ABitLy*
	:ABitLy {url}

	Same as :BitLy but appends, i.e. inserts after the current
	position instead of at the current position, the short URL instead.

	:PBitLy						*:PBitLy*
	:PBitLy {url}
	
	Same as :BitLy but prompts for a tweet on the command line with
	the short URL already inserted.


	:IsGd						*:IsGd*
	:IsGd {url}

	is.gd is a URL forwarding and shortening service. See
	http://is.gd

	This command calls the is.gd API to get a short URL in place of <url>.
	If {url} is not provided on the command line, the command will prompt
	you to enter a URL. The short URL is then inserted into the current
	buffer at the current position.

	:AIsGd						*:AIsGd*
	:AIsGd {url}

	Same as :IsGd but appends, i.e. inserts after the current position
	instead of at the current position, the short URL instead.

	:PIsGd						*:PIsGd*
	:PIsGd {url}
	
	Same as :IsGd but prompts for a tweet on the command line with the
	short URL already inserted.


	:UrlBorg					*:UrlBorg*
	:UrlBorg {url}

	urlBorg is a URL forwarding and shortening service. See
	http://urlborg.com

	This command calls the urlBorg API to get a short URL in place of
	<url>. If {url} is not provided on the command line, the command will
	prompt you to enter a URL. The short URL is then inserted into the
	current buffer at the current position.

	The urlBorg API requires an API key. A default API key is provided
	with TwitVim and no configuration is required. However, if you wish to
	supply your own key in order to track your urlBorg history and stats,
	visit http://urlborg.com/a/account/ to retrieve your API key and then
	add the following to your vimrc:

							*twitvim_urlborg_key*
		let twitvim_urlborg_key = "12345-6789"

	Replace 12345-6789 with your API key.

	:AUrlBorg					*:AUrlBorg*
	:AUrlBorg {url}

	Same as :UrlBorg but appends, i.e. inserts after the current position
	instead of at the current position, the short URL instead.

	:PUrlBorg					*:PUrlBorg*
	:PUrlBorg {url}
	
	Same as :UrlBorg but prompts for a tweet on the command line with the
	short URL already inserted.


	:Trim						*:Trim*
	:Trim {url}

	tr.im is a URL forwarding and shortening service. See http://tr.im/

	This command calls the tr.im API to get a short URL in place of
	<url>. If {url} is not provided on the command line, the command will
	prompt you to enter a URL. The short URL is then inserted into the
	current buffer at the current position.

	If you login to the tr.im API, tr.im will keep track
	of URLs that you have shortened. In order to do that, add the
	following to your vimrc:

							*twitvim_trim_login*
		let twitvim_trim_login = "trimuser:trimpassword"

	Where trimuser and trimpassword are your tr.im account user name and
	password.

	You may also specify trimuser:trimpassword as a base64 encoded string:

		let twitvim_trim_login = "base64string"

	See |TwitVim-login-base64| for information on generating base64
	strings.

	:ATrim						*:ATrim*
	:ATrim {url}

	Same as :Trim but appends, i.e. inserts after the current position
	instead of at the current position, the short URL instead.

	:PTrim						*:PTrim*
	:PTrim {url}
	
	Same as :Trim but prompts for a tweet on the command line with the
	short URL already inserted.


	:Cligs						*:Cligs*
	:Cligs {url}

	Cligs is a URL forwarding and shortening service. See http://cli.gs/

	This command calls the Cligs API to get a short URL in place of
	<url>. If {url} is not provided on the command line, the command will
	prompt you to enter a URL. The short URL is then inserted into the
	current buffer at the current position.

	If you supply a Cligs API key, Cligs will keep track of URLs that you
	have shortened. In order to do that, add the following to your vimrc:

							*twitvim_cligs_key*
		let twitvim_cligs_key = "hexstring"

	where hexstring is the API key. You can get an API key by registering
	for a user account at Cligs and then visiting http://cli.gs/user/api

	:ACligs						*:ACligs*
	:ACligs {url}

	Same as :Cligs but appends, i.e. inserts after the current position
	instead of at the current position, the short URL instead.

	:PCligs						*:PCligs*
	:PCligs {url}
	
	Same as :Cligs but prompts for a tweet on the command line with the
	short URL already inserted.


	:[count]SearchTwitter					*:SearchTwitter*
	:[count]SearchTwitter {query}
	
	This command calls the Twitter Search API to search for {query}. If
	{query} is not provided on the command line, the command will prompt
	you for it. Search results are then displayed in the timeline buffer.

	All of the Twitter Search operators are supported implicitly. See
	http://search.twitter.com/operators for a list of search operators.

	If you specify [count], that number is used as the page number. For
	example, :2SearchTwitter hello displays the second page of search
	results for the word hello.

	You can configure the number of tweets returned by :SearchTwitter by
	setting |twitvim_count|.


	:RateLimitTwitter				*:RateLimitTwitter*

	This command calls the Twitter API to retrieve rate limit information.
	It shows the current hourly limit, how many API calls you have
	remaining, and when your quota will be reset. You can use it to check
	if you have been temporarily locked out of Twitter for hitting the
	rate limit. This command does not work on identi.ca.


	:ProfileTwitter {username}			*:ProfileTwitter*

	This command calls the Twitter API to retrieve user profile
	information (e.g. name, location, bio, update count) for the specified
	user. It displays the information in a user profile buffer.

	See also |TwitVim-Leader-p|.


	:LocationTwitter {location}			*:LocationTwitter*

	This command calls the Twitter API to set the location field in your
	profile. There is no mandatory format for the location. It could be a
	zip code, a town, coordinates, or pretty much anything.

	For example:
	:LocationTwitter 10027
	:LocationTwitter New York, NY, USA
	:LocationTwitter 40.811583, -73.954486


==============================================================================
5. Timeline Highlighting				*TwitVim-highlight*

	TwitVim uses a number of highlighting groups to highlight certain
	elements in the Twitter timeline views. See |:highlight| for details
	on how to customize these highlighting groups.

	twitterUser					*hl-twitterUser*
	
	The Twitter user name at the beginning of each line.

	twitterTime					*hl-twitterTime*

	The time a Twitter update was posted.

	twitterTitle					*hl-twitterTitle*

	The header at the top of the timeline view.

	twitterLink					*hl-twitterLink*

	Link URLs and #hashtags in a Twitter status.

	twitterReply					*hl-twitterReply*

	@-reply in a Twitter status.


==============================================================================
6. Tips and Tricks					*TwitVim-tips*

	Here are a few tips for using TwitVim more efficiently.


------------------------------------------------------------------------------
6.1. Timeline Hotkeys					*TwitVim-hotkeys*

	TwitVim does not autorefresh. However, you can make refreshing your
	timeline easier by mapping keys to the timeline commands. For example,
	I use the <F8> key for that:

		nnoremap <F8> :FriendsTwitter<cr>
		nnoremap <S-F8> :UserTwitter<cr>
		nnoremap <A-F8> :RepliesTwitter<cr>
		nnoremap <C-F8> :DMTwitter<cr>


------------------------------------------------------------------------------
6.2. Switching between services				*TwitVim-switch*

	I have user accounts on both Twitter and identi.ca. Here is what I
	added to my vimrc to make it easy to switch between the two services
	within the same TwitVim session:

		function! Switch_to_twitter()
		    let g:twitvim_api_root = "http://twitter.com"

		    let g:twitvim_login_b64 = "Twitter Base64 login"

		    FriendsTwitter
		endfunction

		function! Switch_to_identica()
		    let g:twitvim_api_root = "http://identi.ca/api"

		    let g:twitvim_login_b64 = "identi.ca Base64 login"

		    FriendsTwitter
		endfunction

		command! ToTwitter :call Switch_to_twitter()
		command! ToIdentica :call Switch_to_identica()
	
	With that in place, I can use :ToTwitter and :ToIdentica to switch
	between services. I added a call to FriendsTwitter at the end of each
	function so that I'll have a fresh timeline view after switching. You
	may also use this technique to switch between different user accounts
	on the same service.


------------------------------------------------------------------------------
6.3. Line length in status line				*TwitVim-line-length*

	Add the following to your |'statusline'| to display the length of the
	current line:

		%{strlen(getline('.'))}
	
	This is useful if you compose tweets in a separate buffer and post
	them with |:CPosttoTwitter|. With the line length in your status line,
	you will know when you've reached the 140-character boundary.

==============================================================================
7. TwitVim History					*TwitVim-history*

	0.4.1 : 2009-03-30 * Fixed a problem with usernames and search terms
			     that begin with digits.
	0.4.0 : 2009-03-09 * Added |:SendDMTwitter| to send direct messages
			     through API without relying on the "d user ..."
			     syntax.
			   * Modified Alt-D mapping in timeline to use
			     the :SendDMTwitter code.
			   * Added |:BackTwitter| and |:ForwardTwitter|
			     commands, Ctrl-O and Ctrl-I mappings to move back
			     and forth in the timeline stack.
			   * Improvements in window handling. TwitVim commands
			     will restore the cursor to the original window
			     when possible.
			   * Wrote some notes on using TwitVim with Twitter
			     SSL API.
			   * Added mapping to show predecessor tweet for an
			     @-reply. |TwitVim-inreplyto|
			   * Added mapping to delete a tweet or message.
			     |TwitVim-delete|
			   * Added commands and mappings to refresh the
			     timeline and load the next or previous page.
			     |TwitVim-refresh|, |TwitVim-next|,
			     |TwitVim-previous|.
	0.3.5 : 2009-01-30 * Added support for pagination and page length to
			     :SearchTwitter.
			   * Shortened default retweet prefix to "RT".
	0.3.4 : 2008-11-11 * Added |twitvim_count| option to allow user to
			     configure the number of tweets returned by
			     :FriendsTwitter and :UserTwitter.
	0.3.3 : 2008-10-06 * Added support for Cligs. |:Cligs|
	                   * Fixed a problem with not being able to unset
			     the proxy if using Tcl http.
	0.3.2 : 2008-09-30 * Added command to display rate limit info.
			     |:RateLimitTwitter|
			   * Improved error reporting for :UserTwitter.
			   * Added command and mapping to display user
			     profile information. |:ProfileTwitter|
			     |TwitVim-Leader-p|
			   * Added command for updating location.
			     |:LocationTwitter|
			   * Added support for tr.im. |:Trim|
			   * Fixed error reporting in Tcl http code.
	0.3.1 : 2008-09-18 * Added support for LongURL. |TwitVim-LongURL|
			   * Added support for posting multibyte/Unicode
			     tweets in cURL mode.
			   * Remove newlines from text before retweeting.
	0.3.0 : 2008-09-12 * Added support for http networking through Vim's
			     Perl, Python, Ruby, and Tcl interfaces, as
			     alternatives to cURL. |TwitVim-non-cURL|
			   * Removed UrlTea support.
	0.2.24 : 2008-08-28 * Added retweet feature. See |TwitVim-retweet|
	0.2.23 : 2008-08-25 * Support in_reply_to_status_id parameter.
			    * Added tip on line length in statusline.
			    * Report browser launch errors.
			    * Set syntax highlighting on every timeline refresh.
	0.2.22 : 2008-08-13 * Rewrote time conversion code in Vim script
			      so we don't need Perl or Python any more.
			    * Do not URL-encode digits 0 to 9.
	0.2.21 : 2008-08-12 * Added tips section to documentation.
			    * Use create_or_reuse instead of create in UrlBorg
			      API so that it will always generate the same
			      short URL for the same long URL.
			    * Added support for highlighting #hashtags and
			      jumping to Twitter Searches for #hashtags.
			    * Added Python code to convert Twitter timestamps
			      to local time and simplify them.
	0.2.20 : 2008-07-24 * Switched from Summize to Twitter Search.
			      |:SearchTwitter|
	0.2.19 : 2008-07-23 * Added support for non-Twitter servers
			      implementing the Twitter API. This is for
			      identi.ca support. See |twitvim-identi.ca|.
	0.2.18 : 2008-07-14 * Added support for urlBorg API. |:UrlBorg|
	0.2.17 : 2008-07-11 * Added command to show DM Sent Timeline.
	                      |:DMSentTwitter|
			    * Added support for pagination in Friends, User,
			      Replies, DM, and DM Sent timelines.
			    * Added support for bit.ly API and is.gd API.
			      |:BitLy| |:IsGd|
	0.2.16 : 2008-05-16 * Removed quotes around browser launch URL.
			    * Escape ! character in browser launch URL.
	0.2.15 : 2008-05-13 * Extend :UserTwitter and :FriendsTwitter to show
			      another user's timeline if argument supplied.
			    * Extend Alt-G mapping to jump to another user's
			      timeline if invoked over @user or user:
			    * Escape special Vim shell characters in URL when
			      launching web browser.
	0.2.14 : 2008-05-12 * Added support for Summize search API.
	0.2.13 : 2008-05-07 * Added mappings to launch web browser on URLs in
			      timeline.
	0.2.12 : 2008-05-05 * Allow user to specify Twitter login info and
			      proxy login info preencoded in base64.
			      |twitvim_login_b64| |twitvim_proxy_login_b64|
	0.2.11 : 2008-05-02 * Scroll to top in timeline window after adding
			      an update line.
			    * Add <Leader>r and <Leader>d mappings as
			      alternative to Alt-R and Alt-D because the
			      latter are not valid key combos under Cygwin.
	0.2.10 : 2008-04-25 * Shortened snipurl.com to snipr.com
			    * Added support for proxy authentication.
			      |twitvim_proxy_login|
			    * Handle Perl module load failure. Not that I
			      expect those modules to ever be missing.
	0.2.9 : 2008-04-23 * Added some status messages.
			   * Added menu items under Plugin menu.
			   * Allow Ctrl-T as an alternative to Alt-T to avoid
			     conflict with the menu bar.
			   * Added support for UrlTea API.
			   * Generalize URL encoding to all non-alpha chars.
	0.2.8 : 2008-04-22 * Encode URLs sent to URL-shortening services.
	0.2.7 : 2008-04-21 * Add support for TinyURL API. |:TinyURL|
			   * Add quick direct message feature.
			     |TwitVim-direct-message|
	0.2.6 : 2008-04-15 * Delete Twitter buffer to the blackhole register
			     to avoid stepping on registers unnecessarily.
			   * Quote login and proxy arguments before sending to
			     cURL.
			   * Added support for SnipURL API and Metamark API.
			     |:Snipurl| |:Metamark|
	0.2.5 : 2008-04-14 * Escape the "+" character in sent tweets.
			   * Added Perl code to convert Twitter timestamps to
			     local time and simplify them.
			   * Fix for timestamp highlight when the "|"
			     character appears in a tweet.
	0.2.4 : 2008-04-13 * Use <q-args> in Tweetburner commands.
			   * Improve XML parsing so that order of elements
			     does not matter.
			   * Changed T mapping to Alt-T to avoid overriding
			     the |T| command.
	0.2.3 : 2008-04-12 * Added more Tweetburner commands.
	0.2.2 : 2008-04-11 * Added quick reply feature.
			   * Added Tweetburner support. |:Tweetburner|
			   * Changed client ident to "from twitvim".
	0.2.1 : 2008-04-10 * Bug fix for Chinese characters in timeline.
			     Thanks to Leiyue.
			   * Scroll up to newest tweet after refreshing
			     timeline.
			   * Changed Twitter window name to avoid unsafe
			     special characters and clashes with file names.
	0.2.0 : 2008-04-09 * Added views for public, friends, user timelines,
			     replies, and direct messages. 
			   * Automatically insert user's posts into
			     public, friends, or user timeline, if visible.
			   * Added syntax highlighting for timeline view.
	0.1.2 : 2008-04-03 * Make plugin conform to guidelines in
    			    |write-plugin|.
			   * Add help documentation.
	0.1.1 : 2008-04-01 * Add error reporting for cURL problems.
	0.1   : 2008-03-28 * Initial release.


==============================================================================
8. TwitVim Credits					*TwitVim-credits*

	Thanks to Travis Jeffery, the author of the original VimTwitter script
	(vimscript #2124), who came up with the idea of running cURL from Vim
	to access the Twitter API.

	Techniques for managing the Twitter buffer were adapted from the NERD
	Tree plugin (vimscript #1658) by Marty Grenfell.


==============================================================================
vim:tw=78:ts=8:ft=help:norl:
