schlitt.info - php, photography and private stuff ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :Author: Tobias Schlitt :Date: Thu, 27 Nov 2008 18:00:29 +0100 :Revision: 2 :Copyright: CC by-nc-sa ==================================== Comfortable PHP editing with VIM -5- ==================================== :Description: More than a half year after my last "Comfortable PHP editing with VIM" post, I take up this series again, although I decided to let it die in January. Sadly I did not find any time by now, to extend PDV (the PHP Documentor for VIM plugin) further than it's version 1.0.1, which is available through vim.org and on my SVN. Anyway, I collected a lot of (at least for me) helpful VIM tips, which I'd like to share here: More than a half year after my last "`Comfortable PHP editing with VIM`__" post, I take up this series again, although I decided to let it die in January. Sadly I did not find any time by now, to extend `PDV`__ (the PHP Documentor for VIM plugin) further than it's version 1.0.1, which is available through `vim.org`__ and on my `SVN`__. Anyway, I collected a lot of (at least for me) helpful VIM tips, which I'd like to share here: .. __: /opensource/blog/0372_comfortable_php_editing_with_vim_4.html .. __: http://vim.org/scripts/script.php?script_id=1355 .. __: http://vim.org .. __: http://svn.toby.phpugdo.de/PDV/ .. contents:: ------------------------- Next occurrence of a word ------------------------- If you hit ``*``\ in command mode and your cursor resides on a word, you are taken to the next occurrence of the word. This is quite nice, if you like to know, where a function is called again. ------------------- Find matching brace ------------------- VIM 7.0 luckily highlights matching parenthesis, if your cursor resides on a brace, but sometimes you need to quickly jump to that matching brace. You can achieve this by hitting the % sign in command mode. ---------------------- Repeat the last change ---------------------- It often occurs, that you need to perform 1 change several times, but not often enough to write a short script or to address the changes with a complex regex. In those cases you can perform the change once, move the cursor to the next place and hit the . (dot) char, in command mode. --------------------------------------------- Enhanced functionality with external programs --------------------------------------------- This tip is quite commonly known, but I repeat it here, because it's really helpful: Although VIM has a huge set of useful functions, it does not have everything. If you don't find a utility in VIM, you can simply use extern shell tools to perform certain tasks, by using :! in command or visual mode. For example sorting a range of lines can easily be achieved with the following 2 steps: 1. Select the lines to sort in visual mode. 2. Type :!sort and hit return. ------------------------ Indenting and unindeting ------------------------ Especially when editing code, it happens often, that you have to indent/unindent a code block. If you use VIM's auto-indenting features (like used by `my .vimrc`__), VIM can do that job for you, too. Simply select the lines to (un-)indent in visual mode and hit <} to unindent 1 level or > to indent 1 more level. This also works (as usual in VIM) with quantifiers like 4> to indent 4 more levels. .. __: http://svn.toby.phpugdo.de/PDV/.vimrc ------------------- Remote file editing ------------------- Often you have to quickly edit a file on a remote server. Usually you SSH to that server or mount a remote file system locally, edit the desired file and quit the session again. VIM allows you to do this i 1 step, using SCP. On your shell type vim scp://user@server//path/to/the/file and VIM will edit the file directly through SCP. --------------------------------- Recover the last visual selection --------------------------------- It often happens, that you selected some text in visual mode, e.g. to perform a regex on it. Occasionally your regex is incorrect and you have to revert the changes or they don't even happen. What you then need is to re-select the text portion again, which might take quite a long time, if you deal with large files. Hitting gv in command mode, takes that work from you and selects the last visual selection again. --------------- Grep within VIM --------------- Refactoring happens quite often in dynamic projects. "Real" IDE's offer a lot of tools for this task. While VIM does not, you can enhance your refactoring process a lot with using regex and this tiny tip: To grep through a lot of files for certain strings and then perform changes on each occurrence, vim offers the :grep command. :grep and VIM will store the list of changes for you and :cn will take you to the next occurance of your string. The :grep command utilizes your systems instance of grep, or a custom command stored in the grepprg configuration variable. There is also an internal implementation of grep available in VIM, which you can use with :vimgrep // . The benefit of the external implementation is, that you can easily customize the command to use, e.g. if you need to ignore certain directories while grepping recursively (for instance .svn dirs). You can also get a list of all occurrences of your grep command, using :ll, which is actually a feature of VIMs quickfix tool. Simply select the next entry you want to jump to and hit return in the location list. ------------------------ Placeholders in commands ------------------------ Who doesn't know the case, where you need to open a file in the same directory, the currently edited file resides in? Sure, you can simply use :split , but if your current working directory is far away from the edited file, you possibly will have to type a long long path again. VIM offers you, to replace certain placeholders in commands automatically, most important: % is replaced with the actual file name (so, :split % will open a new window editing the current file - I know that just :split does the same, but it's a nice example to show what % does). So, how does this help in the described case? The replacement text can also be modified by certain modifiers, like :h, which removes the last portion of a file path (the file name). For instance if you currently edit /home/dotxp/dev/ez/ezc/trunk/ConsoleTools/src/table.php and want to split to /home/dotxp/dev/ez/ezc/trunk/ConsoleTools/src/output.php you can do this easily using :split %:h/output.php. Another useful modifier is :s???, which obviously uses a regex to modify the given path. Unlikely the usual replacement command :s, you need to specify the global modifier g before the regex instead of doing so after it. A short example: :split %:gs?trunk?/releases/1.1/? will split to the file table.php of ConsoleTools release 1.1. -------------- Emergency help -------------- Appending an exclamation mark (!) to a command (:!) forces VIM to execute the command, even if it might be dangerous to do so. Quite useless, but still funny is :help!. -------------- Rewrap my text -------------- I reached a stage, where do not only edit my source code using VIM, but mainly every other kind of text data (like documentation, todo lists, etc.), because I'm simply so used to its features. When editing plain text, the automatic wrap features (e.g. textwidth) of VIM are quite useful. In some cases, you might edit text later and therefore destroy a nicely wrapped text block. VIM can easily re-perform the wrapping for you: Select the text block in visual mode (using +) and hit "". ------------------ Spelled correctly? ------------------ In VIM versions earlier to 7.0 you could add spellchecking using external scripts. The new version has this feature per default. What you need to do before spell checking is available, is to set the language of the document you are currently editing, using :setlocal spell spelllang=en_us (note, :setlocal only sets the value for the current window, use :set to set it globally). Now VIM highlights all unknown words and you have 3 important new commands available (in command mode). All are used when your cursor resides on a highlighted word: <=> opens a list of suggested replacements, you can choose one by typing its number or leave the selection untouched using . adds the highlighted word to the global dictionary, so that it is recognized as correct on any spell checking session, later. only adds the word to the local dictionary, so that is recognized as correct during the actual spell checking session. ------ Macros ------ Performing complex tasks very often might be quite time consuming and often not solvable using even highly complex regex. Before writing a complex script, you should consider, that VIM can simply follow your instructions and record them to a script: Type in command mode, to instruct VIM to record all following commands to the register a. Perform whatever you like and finally hit again (in command mode). Your macro is now recorded. Type <@> in command mode, to execute the contents of register a (namely your just recorded macro). A simple example for this is to move certain lines of a file to its top: Go to the first line you need. Type . Now perform the changes: to delete the line, <'> to set the "last editing position mark", <:><1> to jump to the first line of the file,

to paste the just deleted line, <'><'> (2 single quotes) to return to the last editing position. Finally hit to end the recording. Now you can just do <@> on every line you need at the start of your file. Easy, isn't it? :) Additionally <@><@> repeats the last macro execution (so you even don't need to remember the register you stored it in). ----------------- Uppercase letters ----------------- There are a lot of helpful shortcuts on your keyboard, which you might not know about. Every VIM user should now, that deletes something, (yank) copies something and changes something (delete and start inserting) in VIM (all in command mode). Furthermore, most people know that e.g. deletes the next word, etc.. What I did not know for a long time was, that , and are shortcuts to perform the desired operation until the end of the current line. For instance, simply type to change the contents of the current line from your cursors position on. ----------- Where am I? ----------- If you have a large resolution (e.g. mine is 166x1200), you sometimes loose your cursor when looking at something else in the room. The new customization features of VIM 7 allow you to add a nice finding help: Add the lines autocmd InsertLeave ``*`` se nocul and autocmd InsertEnter ``*`` se cul to your .vimrc and you will get the current line underlined as soon as you enter insert mode. --------------------- Regex driven commands --------------------- Regular expressions belong to every VIM users toolbox. What some people might not know (so didn't I) is, that you can not only do replacements with them in VIM, but also address lines you want to perform commands on. Simply do :s//= to execute the given on each text portion that matches . ----------- Magic regex ----------- Those of you who are used to PCRE syntax (and I hope all of you PHP developers out there), will often struggle over VIMs POSIX style regex and forget toescape parenthesis and other stuff. Usually VIMs regex work in so called magic mode, which means that VIM treats only a limited set of characters as magic inside a regex (that applies e.g. to ., matching any character, and ``*``\ as a quantifier). Other characters, like (, ) and | are per default not considered magic and have to be escaped to make them magic (i\(, \) and \|). While this might be convenient insome cases (like simple text replacements without back-references), it becomes quite ugly, if you need to refer to a lot of capturing parenthesis. For this cases, it makes sense to switch VIM into very magic mode, using \v at the beginning of your regex. The opposite of this switch is \V, which makes the regex very nomagic. Because VIM is normally in magic mode (which corresponds to setting \m, if you change the default behaviour), there is also a nomagic mode, which considers less, but still some, characters as magic. Some simple examples: .. csv-table:: "s/(foo)bar/1/", "does not work, () must be escaped" "s/\v(foo)bar//1/", "does work, regex is considered very magic" "s/.*bar$/foobar/", "replaces a line with foobar, that ends on bar" "s/\V.*bar$/foobar/", "replaces a line with foobar, contains literaly ".``*``\bar$"" This were quite many tips, especially for unexperienced VIM users. I recommend to not try to learn them all at once. Pick out 2-3 tips that you consider very important for your daily work and start getting used to them. When you are sure, you use them every time it makes sense, grab the next 2-3 and so on. I also recommend to every programmer out there, to read a work I personally call "`Bible of text editing`__", written by Bram Moolenaar, the author of VIM itself. These 7 tips really make sense and explain quite simple, why I personally love to use VIM. .. __: http://www.moolenaar.net/habits.html I hope the above shown tips help some people to make their daily work a bit more efficient and I also hope that I will manage to set up a new website soon, so I can consolidate all of my VIM tips in 1 central place. So long you will have to use my blog to find them again, so here is the whole collection of my "Comfortable PHP editing with VIM" series: `Part -1-`__ `Part -2-`__ `Part -3-`__ `Part -4-`__ .. __: /opensource/blog/0278_comfortable_php_editing_with_vim.html .. __: /opensource/blog/0283_comfortable_php_editing_with_vim_2.html .. __: /opensource/blog/0331_comfortable_php_editing_with_vim_3.html .. __: /opensource/blog/0372_comfortable_php_editing_with_vim_4.html Note, that in the links in earlier editions of this series might be broken. Please refer to the latest versions of the links, contained in this article! Have fun! :) .. Local Variables: mode: rst fill-column: 79 End: vim: et syn=rst tw=79 Trackbacks ========== - 3 years of blogging on Sat, 30 Sep 2006 11:58:01 +0200 in Tobias Schlitt - a passion for php Yes, it's true, exactly 3 years ago I wrote my first blog entry. By that time I would never have imagined, that I would keep blogging for more than 3 years and that more or less constantly. My weblog now contains 458 entries. Surely, there is some bulshit - I am the VIM. You will be assimilated. Resistance is futile. on Sat, 21 Oct 2006 14:52:27 +0200 in Thomas Koch Noch auf dem Linuxtag in Essen vor einem Monat habe ich mich darüber gewundert, warum Menschen immer noch so etwas steinzeitliches wie VIM oder Emacs benutzen. Jetzt bin ich selber assimiliert. (OK. Warum man Emacs benutzt habe ich immer noch nicht verst - PHP Documentor for VIM documented on Fri, 01 Dec 2006 11:49:40 +0100 in Tobias Schlitt - a passion for php Because I had a talk about how to use VIM in respect to PHP source code editing, I took the time during the week, to write some extensive documentation for PDV, the PHP Documentor plugin for VIM. Additionally, I documented my VIM file type plugin, which i - Latest News on Tue, 05 Feb 2008 12:23:29 +0100 in Latest News Latest News - Exploring Eclipse, PDT and Eclim on Sat, 24 Oct 2009 17:04:11 +0200 in Thomas Koch Back in 2006 I learned, that KWrite (a simple text editor) was not enough to write PHP code with. I tried eclipse, but it seemed too complex and was way too slow on my old laptop. So inspired by the Comfortable PHP editing with VIM series of Tobias Sch Comments ======== - Taras at Wed, 23 Aug 2006 18:00:51 +0200 It good solution to use ctags utility for autocomplete php functions 1. download the latest php manual in "many html files" format 2. write some shell(or perl) scripts that will parse these files and creates e.g. from function.mysql-connect.html via e.g. lynx 3. function.mysql-connect.html.txt -> function.mysql-connect.html.txt.php // // mysql_connect // // (PHP 3, PHP 4, PHP 5) // mysql_connect -- Open a connection to a MySQL Server // //Description // function mysql_connect([stringserver[,stringusername[,:resource // password [, bool new_link [, int client_flags]]]]] ) // // Opens or reuses a connection to a MySQL server. // //Parameters // // server // The MySQL server. It can also include a port number. e.g. // "hostname:port" or a path to a local socket e.g. ":/path/to/socket" // for the localhost. // // If the PHP directive [7]mysql.default_host is undefined (default), // then the default value is 'localhost:3306' // // username // The username. Default value is the name of the user that owns the // server process. // // password // The password. Default value is an empty password. // // new_link // If a second call is made to mysql_connect() with the same arguments, // no new link will be established, but instead, the link identifier of // the already opened link will be returned. The new_link parameter // modifies this behavior and makes mysql_connect() always open a new // link, even if mysql_connect() was called before with the same // parameters. // // client_flags // The client_flags parameter can be a combination of the following // constants: MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, // MYSQL_CLIENT_IGNORE_SPACE or MYSQL_CLIENT_INTERACTIVE. Read the // section about [8]Table 2 for further information. // //Return Values // // Returns a MySQL link identifier on success, or FALSE on failure. .... 4. ctags ~/php-tags, ~/php-tags is directory where function.*.html.txt.php is located 5. in ~/.vimrc put set tags+=~/php-tags/tags now you can autocomplete php word by ctrl+ p and if you press ctrl+w & ctrl+ } you'll go to needed man page - David Craddock at Wed, 23 Aug 2006 19:00:10 +0200 This will be invaluable to me, thanks a lot :) - hans at Thu, 24 Aug 2006 09:46:34 +0200 is there any chance to download your .vimrc? It is linked in part 3 of the tutorial, but opening the URL I only get a 404 error - Toby at Thu, 24 Aug 2006 11:16:07 +0200 You can find it in my SVN repo (as writen in the article): http://svn.toby.phpugdo.de/PDV/ Hope it's useful! Toby - Dave Marshall at Thu, 24 Aug 2006 16:31:31 +0200 Awesome stuff Toby, I'm a keen follower of this little mini series. Particularly like the editing over scp, although I'm not having much luck with it under cygwin, going to keep digging though. Keep up the good work. - depi at Sat, 26 Aug 2006 17:12:18 +0200 Very usefull tips. I just started to use VIM, and looked for some PHP specific tipis, then I found your blog and your entries, thanks ... good job! :) - Scott Wehrenberg at Thu, 07 Sep 2006 17:50:40 +0200 Great stuff, thanks for all the tips. I was hoping that you had been cooking up some improvements using VIM 7s omnicomplete feature. My experience with it thus far has been mixed, as it adds some interesting completion for objects, functions, and support for ctags. But in some ways it lags behind simple keyword completion. Another type for expanding the current filename on the command line is to use ctrl-r % to insert the current filename directly onto the command line. Where's the documentation on placeholders? I can't seem to find it. Thanks again for all your vim tips. - Torgeir at Tue, 19 Sep 2006 16:41:21 +0200 damn, this is great stuff! say i use this autocompletion-function and type fex $_GET["test|"] and the pointer is at the pipe |, is there an easy way to make it jump to the end $_GET["test"]| at the press of Enter? this could be a nice feature - Torgeir at Tue, 19 Sep 2006 18:35:55 +0200 im also wondering if you got these examples for using PDV.. - Roel at Mon, 02 Oct 2006 14:13:47 +0200 Where did the 'auto reload vimrc when it has changed' go? I can't seem to find it in your svn. Thanks. - caillou at Thu, 23 Nov 2006 16:12:07 +0100 i get a 404 on your .vimrc file... else than that, i have to say, that your tips are great! - caillou at Thu, 23 Nov 2006 17:21:30 +0100 sorry to bother you with that, but the SVN gives 404 / 403. i use your config on a daily basis (and i am very grateful), but i cannot seem to get the old one to work with vim 7... any tips? cheers ... caillou - Toby at Thu, 23 Nov 2006 17:43:44 +0100 I'm sorry, because of a server migration, it is currently down. It will be up shortly, again. - Toby at Sat, 25 Nov 2006 06:16:02 +0100 So, the SVN web access is up and running again.Sorry for the inconvenience. - Craig at Wed, 20 Dec 2006 17:22:43 +0100 The svn repo gives this error message when going to the page: svn: Can't check path '/root/.subversion': Permission denied - Toby at Sat, 23 Dec 2006 11:55:37 +0100 Fixed now. Thanks for the hint! - m0n5t3r at Sun, 24 Dec 2006 12:14:31 +0100 Great stuff, Toby :D A small suggestion: you may want to replace let g:smth=value in the plugin with something like if !exists("g:smth") let g:smth="defaultvalue" endif so that people who install the plugin using their distribution's package manager can still customize things in .vimrc (which gets sourced before the plugins, apparently) without losing the changes on upgrade ;) - Toby at Sun, 24 Dec 2006 12:27:39 +0100 Hi there! That sounds like a good idea. I will keep it in mind for the next release. Thanks! Toby - Tim at Fri, 05 Jan 2007 15:24:27 +0100 Hallo, i just wanted to download the vimrc but i could't, not allowd in svn. thanx for great tutorial and help. i just want to work with it and i can't tim - Toby at Tue, 09 Jan 2007 10:28:09 +0100 Looks like this issue occurs now and then. I fixed it now again. Thanks for the hint! - troels at Sun, 25 Mar 2007 04:36:28 +0200 Any chance that you could put a copy of phpm in the repository. Havard Eide's site is down, and seems to have been for at least a half year. - Thomas Andrews at Mon, 15 Feb 2010 21:47:29 +0100 That subversion repository for the .vimrc file doesn't work anymore. - Toby at Tue, 16 Feb 2010 08:55:07 +0100 Note that PDV is now named VIP and hosted on github. For details, please refer to http://schlitt.info/opensource/blog/0719_pdv_vip_now_on_github.html - QueekmahLam at Fri, 20 May 2011 03:13:03 +0200 She in sod download Underbelly Files: Tell Them Lucifer Was Here dvd movie motorries a download Mars Needs Moms dvdrip movie torch in compensation Philip (Don Warrindton), download Prema Kavali movie the delicate son of an African chief who also resides at Rigsby way of Tfussyrs. download Red River dvd movie unqualifiedor Ricki download Barbie: A Fairy Secret movie superb and Anne palatialberga€™s download Yamla Pagla Deewana hd movie mist download Beyond the Blackboard movie carry outs Rivers download The 68th Annual Golden Globe Awards hd movie thladies' man download Universal Squadrons aka Minuteman movie an undiminished download Roadkill hd movie yattention, and from the elseset download Red Riding Hood movie she isna€™t download Largo Winch (Tome 2) dvdrip movie download Travellers dvdrip movie download Best Player movie abashed download No One Killed Jessica dvdrip movie to download Dahmer vs. Gacy movie accept that ita€™s a download Age of the Dragons dvdrip movie rake onset, in which her dateregister consists priprofuseily of the poacherg she trepidations the most: utter download Gnomeo & Juliet movie download Limitless hd movie wpummele plife-spans. download Kiss the Bride dvd movie A spongy malicious whose pursuit is to skiver applause the Cube put to deatheavours to resprompt an download The Roommate movie untainted download Kill the Irishman dvd movie wovicious download Textuality hd movie download Water for Elephants movie torateped in approaching download Soul Surfer dvdrip movie of its download Just Go with It dvdrip movie sentimentalists. download From Prada to Nada dvd movie After download Accidentally in Love hd movie a download The Sunset Limited movie sgood-looking reaccount fory, download Behemoth dvd movie download Vampire Boys hd movie he matures flexileer. download Hanna movie Her putrefy, Ingrid, download Ticking Clock dvd movie is a download The Green Hornet dvd movie charming, loose-spirited download Arthur movie rhyme. motorradine co-fundamentalss - Leon Zhang at Thu, 30 Jun 2011 04:40:49 +0200 the magic syntax in vim 7.3 seems \v instead of v s/\v(foo)bar//1/ s/\V.*bar$/foobar/ - DSLR-A850 at Wed, 16 Nov 2011 21:08:27 +0100 Tale sito informativo! Grazie grande! Grazie per un buon tempo che visitano il tuo sito. E 'davvero un piacere comprensione di un sito web come questo pieno di informazioni piacevole. Grazie! - Kler_Pense at Mon, 16 Jan 2012 09:44:12 +0100 video of first time having sex godess of sex xcalibir lords of sex clips girles ass extremly free movie porn check for sex affenders dawn xxx pornstars open tryouts jessica alba porn cartoon web sex tutorial guro hentai comics girls having sex on beach hot cheerleaders with nice asses pornstar emillianna hot naked sex dog porn free incest free sex in your area old nude milf completely free homemade porn ibd and sex - Kati_kere at Tue, 17 Jan 2012 11:37:53 +0100 phat ass huge tit free couple having sex how to make your wife want more sex milf hunter episode kaci breast milf bare ass spanking videos why do i always want sex unfiltered lesbian licking free asian porn viedos af sergeants ass symptom increased sex drive clip gay xxx sex clips for download pornstar nadine bio code lyoko xxx video disabled spouses need sex outside marriage vagina sex toy sex flapps com move sex french free xxx video clips squirting teen gallery - traiffCabriff at Tue, 17 Jan 2012 17:26:01 +0100 http://s017.radikal.ru/i420/1112/69/7cdb34b6870c.jpg http://s57.radikal.ru/i158/1112/92/d6cc52a600dc.jpg Tegs: вопрос онлайн юристу деятельность юриста консалтинг. адвокат по продажам юзао юридическая компания юзао дневник юриста юзао вопрос юристу юзао - moloGessy at Wed, 18 Jan 2012 21:37:00 +0100 Illegal drugs can also cause you problems (amphetamines, cocaine, ecstasy). It also grows hair back on the front of the scalp as well. Common causes of food allergies include excess sugar, dairy products, and certain refined flours and grains. It has wonderful and useful properties to provide healing touch to your wounds. The intake of Cialis does not make a person feel dizzy, so there is no hindrance in any kind of work. - traiffCabriff at Tue, 24 Jan 2012 01:03:21 +0100 http://s017.radikal.ru/i420/1112/69/7cdb34b6870c.jpg http://s46.radikal.ru/i113/1112/5d/c7802bf35393.jpg Tegs: консалтинговые услуги резюме юриста инструкция юриста. профессия адвокат свао ищу работу свао нужен юрист свао юрист без опыта работы свао - PaulPaulinf at Sun, 19 Feb 2012 02:43:44 +0100 Apology lawyers representing the US Army analyst accused of leaking counselling secrets into asked the investigating policeman to initiative aside. The request came as Foot-soldier Bradley Manning, 23 - pozycjonowanie, appeared at a military court owing the fundamental time. He faces 22 charges of obtaining and distributing oppression secrets - which he allegedly leaked to anti-secrecy plot Wikileaks. The Article 32 hearing when one pleases regulate whether Pte Manning is to corroborate trial. The hearing offers the basic opportunity in the usefulness of his vindication company to benefaction their anyhow since he was arrested in Iraq in May 2010 and placed in military custody. It is intriguing apartment controlled by the control of complete pledge at an army base at Fort Meade, Maryland. As the hearing opened, Pte Manning's guard yoke asked after the investigating copper - tantamount to a about in a civilian court - to recoil from the crate, the BBC's North America managing managing editor Association Mardell reports from the base. Pte Manning was reported to be sitting in the courtroom dressed in military khaki and wearing black-rimmed glasses. During the Article 32 hearing, which is equivalent to a pre-trial hearing, both prosecuting and screen lawyers will-power coerce their beginning cases and are permitted to cross-examine witnesses. Pleading royal's judgement David Coombs began proceedings before switching the cluster onto investigating societal serving-girl Lt Col Paul Almanza, who he described as "having a soft spot". Lt Col Almanza is a time-worn military assume who at this very mo works goal of the Portion of Justice. His option to suffer all but two of 38 debate witnesses meant the support could not adequately be comprised of c hatch their examine, Mr Coombs said. Proceedings are expected to model up five days, after which recommendations comfort be made to a military non-specific, who option resolve whether to proceed to a stacked irritation, according to Mr Coombs - pozycjonowanie. The BBC's Paul Adams says the soldier's rampart term is appropriate to suggest that wee harm came of the leaks, and that their unfetter was in the greater section interest. - Advice at Tue, 06 Mar 2012 11:12:54 +0100 A perfect info source. Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. - Wilheminaje at Wed, 30 May 2012 15:58:10 +0200 Hi schlitt.info . [url=]viagra women /#3339 [/url], IOEF , [url=http://pharmacyviagraonline.com/ ]free samples of viagra /#WLDF [/url], XNVS Regards - statistic help at Fri, 06 Jul 2012 12:43:05 +0200 I appreciate, lead to I found exactly what I used to be having a look for. You have ended my four day lengthy hunt! God Bless you man. Have a nice day - Deanna.W at Mon, 05 Nov 2012 10:24:03 +0100 You completed some good points on schlitt.info . I did a search on the theme and found the majority of persons will have the same opinion with your phorum. Wonderful! - novoline american poker at Fri, 23 Nov 2012 07:31:49 +0100 This is best site to spent time on .I just stumbled upon your chatty blog and wanted to say that I have really enjoyed reading your very well written blog posts. - Hollywood locksmith services at Fri, 28 Dec 2012 11:41:19 +0100 Interesting and amazing how your post is! It Is Useful and helpful for me That I like it very much, and I am looking forward to Hearing from your next. - Improve Eyesight at Thu, 31 Jan 2013 12:01:34 +0100 Interesting and amazing how your post is! It Is Useful and helpful for me That I like it very much, and I am looking forward to Hearing from your next. Great post thanks - Ontario Homes For Sale at Sat, 16 Feb 2013 20:38:05 +0100 I have written things I would love to take back, goo work, keep it upI do wish there were more people like you around on the interwebs. Not many people are careful with their words, including myself sometimes. - pasto siintetico precio at Tue, 19 Feb 2013 12:11:15 +0100 Many thanks for this terrific write-up, I have sent the link to my friend, sure he will turn into a reader soon too. - alfombras modulares at Tue, 19 Feb 2013 12:11:34 +0100 There are a lot of blogs and articles out there on this topic, but you have acquired another side of the subject. This is reliable content thank you for sharing it. - white label at Fri, 22 Feb 2013 14:51:20 +0100 wanted to thank you for this great read!! I definitely enjoyed every little bit of it. I have you bookmarked to check out new stuff on your post. - topes de hule at Fri, 08 Mar 2013 07:45:17 +0100 This one is enlightened blog post. Thanks a lot for sharing your valuable views through this blog. I bared so recurrent fascinating stuff in blog. - tapetes personalizados at Thu, 21 Mar 2013 08:44:14 +0100 Your article has tickled my fancy. I wanted to say something different than other readers. I really have enjoyed reading your article and think you have a lot of good thoughts. Thanks for this content. - topes de estacionamiento at Sat, 13 Apr 2013 21:22:59 +0200 I really enjoyed the quality information you offer to your visitors for this blog. I will bookmark your blog and have my friends check up here often. - tapetes personalizados at Sat, 13 Apr 2013 21:23:21 +0200 I wanted saying thanks to you with this wonderful examine!! I actually certainly enjoyed any little the idea, We've you saved to think about each of the new items you posting.